Difference between revisions of "Piñata Vision barcode/Name bits"
FeralKitty (talk | contribs) (Added name data; 7 more sets of matching names; 1 more card for James) |
FeralKitty (talk | contribs) (Added data and location for name length field) |
||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | :''To do: | + | :''To do: Work on correctly decoding GoodVariants names.'' |
== Name data == | == Name data == | ||
Line 6: | Line 6: | ||
Based on released GoodVariants and Blackariants cards, encoded names are 3 to 9 characters long, the longest (and only 9-character name) being [[:Image:Chewnicorn-TroubleInParadise-Black-Francesca-PV.jpg|Francesca]]. | Based on released GoodVariants and Blackariants cards, encoded names are 3 to 9 characters long, the longest (and only 9-character name) being [[:Image:Chewnicorn-TroubleInParadise-Black-Francesca-PV.jpg|Francesca]]. | ||
+ | Other cards with longer names include [[:Image:Tusk-Killer_Instinct-PV.jpg|Uncle Tusk]] and [[:Image:Pengum-TroubleInParadise-TeamMember-14-PV.jpg|Fiddy Pence]]. | ||
+ | |||
+ | Until any encoded evidence of much longer names are found, the name length data appears to be a 4-bit field (0-15, with the possibility that 0 indicates the absence of a variable-length name field to follow). | ||
+ | |||
+ | == Location of name length bits == | ||
+ | |||
+ | GoodVariants and Blackariants cards encode name length data in row 2, as determined by checking rows 1 and 2 for all obfuscation sets. It's likely that PlaceTag species also have a name length field in row 2, although the lack of specific name data for those cards makes it impossible to verify at this time. | ||
+ | |||
+ | == Decoding name length bits == | ||
+ | |||
+ | {| class="collapsible collapsed" | ||
+ | !Reading name length data from obfuscation set 2 cards | ||
+ | |- | ||
+ | | | ||
+ | <pre> | ||
+ | egrep "^[0-9A-F ]{33}" barcodes.txt | ./barcodetxt2bitdiff.pl --short --namelen | egrep " [0-9A-F]{31}2" | ./reader.pl --namelen | egrep -v " 0 " | ||
+ | B._Orchid-Killer_Ins 9 E1E8C94D1D3E907E862310C95B859A62222CE0C6932E80B2 NAMELEN = 1001 9 | ||
+ | Christmas-12.25.2008 7 B18177A5BDFE1C9362BF4624050612F2F64D2CA27C7452174ED8F0B56F061703 NAMELEN = 0111 7 | ||
+ | Tusk-Killer_Instinct 10 FE35B5B46A03DF5BF736C2C6BF0EED6283CD55C21F0FF2F4 NAMELEN = 1010 10 | ||
+ | Black_flyingpig 6 E07B76921B8641D04363E08C768C9702 NAMELEN = 0110 6 | ||
+ | Black_horse 3 C02EFAB3FC45C649F29EE298258F17B2 NAMELEN = 0011 3 | ||
+ | Black_hydra 4 A2F8D58F59901FDABD68A6388136D502 NAMELEN = 0100 4 | ||
+ | Black_lemmingpest 4 D761959578F6492BBD6556381936D202 NAMELEN = 0100 4 | ||
+ | Black_snowrabbit 3 E7BCB0A0D0C52D37F283E298458F17B2 NAMELEN = 0011 3 | ||
+ | Black_ostrich 4 A2F8D58E5E1BADDA4D6E56389936D6B2 NAMELEN = 0100 4 | ||
+ | Black_sandbuzzard 4 CEEE69162D3BB0A4BD6456385936DB82 NAMELEN = 0100 4 | ||
+ | Black_sandsnake 3 EE89E1A8D8E56D27F2D5E29D458F37B2 NAMELEN = 0011 3 | ||
+ | Good_monkey 4 A2FF7406100E5A12BD69A638992FD482 NAMELEN = 0100 4 | ||
+ | Good_pigeon 6 F43E3EF3FC4596B992F2438C990D85F2 NAMELEN = 0110 6 | ||
+ | Good_ostrich 4 E4647B3B3B61538FBD60A638592FD482 NAMELEN = 0100 4 | ||
+ | Good_ladybird 8 CB7E6A360D0FE2D404C9447C4AABE492 NAMELEN = 1000 8 | ||
+ | </pre> | ||
+ | |} | ||
== Matching names == | == Matching names == | ||
Line 220: | Line 253: | ||
</pre> | </pre> | ||
− | Unfortunately, the good (other) variants don't appear to keep their name data in the same location. One possibility is that the | + | Unfortunately, the good (other) variants don't appear to keep their name data in the same location. One possibility is that the GoodVariants cards have additional data located before the name data, which shifts the underlying name data in the structure. |
<pre> | <pre> |
Revision as of 05:27, 15 November 2010
- To do: Work on correctly decoding GoodVariants names.
Name data
Based on released GoodVariants and Blackariants cards, encoded names are 3 to 9 characters long, the longest (and only 9-character name) being Francesca.
Other cards with longer names include Uncle Tusk and Fiddy Pence.
Until any encoded evidence of much longer names are found, the name length data appears to be a 4-bit field (0-15, with the possibility that 0 indicates the absence of a variable-length name field to follow).
Location of name length bits
GoodVariants and Blackariants cards encode name length data in row 2, as determined by checking rows 1 and 2 for all obfuscation sets. It's likely that PlaceTag species also have a name length field in row 2, although the lack of specific name data for those cards makes it impossible to verify at this time.
Decoding name length bits
Reading name length data from obfuscation set 2 cards |
---|
egrep "^[0-9A-F ]{33}" barcodes.txt | ./barcodetxt2bitdiff.pl --short --namelen | egrep " [0-9A-F]{31}2" | ./reader.pl --namelen | egrep -v " 0 " B._Orchid-Killer_Ins 9 E1E8C94D1D3E907E862310C95B859A62222CE0C6932E80B2 NAMELEN = 1001 9 Christmas-12.25.2008 7 B18177A5BDFE1C9362BF4624050612F2F64D2CA27C7452174ED8F0B56F061703 NAMELEN = 0111 7 Tusk-Killer_Instinct 10 FE35B5B46A03DF5BF736C2C6BF0EED6283CD55C21F0FF2F4 NAMELEN = 1010 10 Black_flyingpig 6 E07B76921B8641D04363E08C768C9702 NAMELEN = 0110 6 Black_horse 3 C02EFAB3FC45C649F29EE298258F17B2 NAMELEN = 0011 3 Black_hydra 4 A2F8D58F59901FDABD68A6388136D502 NAMELEN = 0100 4 Black_lemmingpest 4 D761959578F6492BBD6556381936D202 NAMELEN = 0100 4 Black_snowrabbit 3 E7BCB0A0D0C52D37F283E298458F17B2 NAMELEN = 0011 3 Black_ostrich 4 A2F8D58E5E1BADDA4D6E56389936D6B2 NAMELEN = 0100 4 Black_sandbuzzard 4 CEEE69162D3BB0A4BD6456385936DB82 NAMELEN = 0100 4 Black_sandsnake 3 EE89E1A8D8E56D27F2D5E29D458F37B2 NAMELEN = 0011 3 Good_monkey 4 A2FF7406100E5A12BD69A638992FD482 NAMELEN = 0100 4 Good_pigeon 6 F43E3EF3FC4596B992F2438C990D85F2 NAMELEN = 0110 6 Good_ostrich 4 E4647B3B3B61538FBD60A638592FD482 NAMELEN = 0100 4 Good_ladybird 8 CB7E6A360D0FE2D404C9447C4AABE492 NAMELEN = 1000 8 |
Matching names
The following cards share pinata names, and belong to the same (row 2) obfuscation set.
Cards that also share matching variant data have nearly identical row 2 barcodes, differing in only a few bits.
Bit diff results for same-name, same-variant cards |
---|
3310 Description VPID Barcode row 2 3264 ------------------------------------------------- Good_elephant 38 5168F4494A171D81 0110 0x0026 0b0000000000100110 Good_dragonfly 33 5168F44A4A161D91 1001 0x0021 0b0000000000100001 2100 Description VPID Barcode row 2 4394 ------------------------------------------------- Good_crocodile 26 9A9C55CDE256C006 0000 0x001a 0b0000000000011010 Good_goose 52 9A9C55CDE356E216 1111 0x0034 0b0000000000110100 |
Ava
9FBEF59DCF5DD656 8683F11D287FC206 Bunnycomb-TroubleInParadise-BrightPink-(Ava-)PV.jpg (Variant 8) A2F8D48C480E9EFA 8683F11D2DED9606 Buzzenge-TroubleInParadise-Black-Ava-PV.jpg (Variant 15)
Harley
97B6A3855B66CF88 5168F4494A171D81 Elephanilla-TroubleInParadise-PaleBlue-(Harley-)PV.jpg (Variant 5) D37649004D560805 5168F44A4A161D91 Dragumfly-TroubleInParadise-PaleBlueRed-(Harley-)PV.jpg (Variant 5) D1EBE85E5810F7AE 5168F4594AA61BF1 Mothdrop-TroubleInParadise-Black-(Harley-)PV.jpg (Variant 15)
Note that the first two cards share the same variant data, and that their row 2 barcodes are nearly identical.
Aimee
9A586E134C0BCD3C D26B28D7670ED64E Roario-TroubleInParadise-Pink-(Aimee-)PV.jpg (Variant 6) E17EC6B36C459649 D26B68C6F50ED64E Tartridge-TroubleInParadise-Black-Aimee-)PV.jpg (Variant 15)
Mia
836195952A2BC52B E6769697BF19E6FC DesertRaisant-TroubleInParadise-Black-Mia-PV.jpg (Variant 15) E4653B3B3F14538F E676CF169F09E6FC Sherbat-TroubleInParadise-Blue-(Mia-)PV.jpg (Variant 2)
James
DEE66A946C1BE2B4 9A9C55CDE256C006 Cocoadile-TroubleInParadise-Pink-James-PV.jpg (Variant 5) D37248104F172B35 9A9C55CDE356E216 Juicygoose-TroubleInParadise-Purple-James-PV.jpg (Variant 5) D37248104F172B35 9B636492E839E419 Juicygoose-TroubleInParadise-PaleBlue-(James-)PV.jpg (Variant 6) D76195943B0B6A2B AB6364927878B019 Fudgehog-TroubleInParadise-Black-James-PV.jpg (Variant 15)
Again, the first two cards share the same variant data, and their row 2 barcodes are nearly identical.
The third card happens to share a matching pinata name, but its row 2 barcode is obfuscated differently. Although name length does seem to be one factor in row 2 obfuscation set selection, another factor (such as variant bits or GoodVariants ID) may jointly determine how row 2 is obfuscated.
Also notable (but unrelated) is that the row 1 barcodes for the two Juicygoose cards are identical. The cards do share the same species ID (and use cost). It's unknown at this point if the matching names have any influence on the row 1 barcode, but the differing variant data appears to be completely unrelated to row 1.
Harrison
F94FD444267E40A1 52AD208D61C7E499 ArcticPretztail-TroubleInParadise-Black-Harrison-PV.jpg (Variant 15) 99AD6E134E553CFC 52AD208DE12FC019 Kittyfloss-TroubleInParadise-Orange-Harrison-PV.jpg (Variant 2)
Dominic
869287B06F67CF08 DE2A7444D91B7EED Polollybear-TroubleInParadise-Black-(Dominic-)PV.jpg (Variant 15) EE89F0A4D3E03D27 DC1AE444D95B2EED Salamango-TroubleInParadise-Pink-(Dominic-)PV.jpg (Variant 5)
Jake
A2FF7406100E5A12 BD69A638992FD482 Cinnamonkey-TroubleInParadise-OrangePink-Jake-PV.jpg (Variant 6) A2F8D58F59901FDA BD68A6388136D502 Fourheads-TroubleInParadise-Black-Jake-PV.jpg (Variant 15)
Amber
E7B9E1A9B9D52D27 8D16F31B70A46CF5 Mousemallow-TroubleInParadise-Black-(Amber-)PV.jpg (Variant 15) F86279A0C918644D 8812E33B70542DE5 Swanana-TroubleInParadise-White-Amber-PV.jpg (Variant 3)
Bethany
B3C172A87DF006B3 526C9D234A3758FA Peckanmix-TroubleInParadise-Black-Bethany-PV.jpg (Variant 15) D06E24F3EC4B92B9 526C8E731A3752DA Salamango-TroubleInParadise-Orange-(Bethany-)PV.jpg (Variant 3)
Brooke
DA7FF9E65C2FF2B4 D700F8B09B18C61D Chocstrich-TroubleInParadise-YellowGreen-(Brooke-)PV.jpg (Variant 8) A2F8D48E506B0EFA FE92F9F01B58C63D Jeli-TroubleInParadise-Black-Brooke-PV.jpg (Variant 15)
Joshua
E46168786F7EA38F 339DC922C32ED674 Custacean-TroubleInParadise-Green-Joshua-PV.jpg (Variant 2) E78CB1EBDDE07D37 27123900C33E8654 Sweetle-TroubleInParadise-Black-(Joshua-)PV.jpg (Variant 15)
Leon
E07B7F521BCC57C0 6078136B46122C81 Buzzlegum-TroubleInParadise-Yellow-(Leon-)PV.jpg (Variant 3) F97FD4A826AE50C1 627810DB56122581 Cluckles-TroubleInParadise-Black-Leon-PV.jpg (Variant 15)
Oscar
964EFA9F9E5D34B6 A9F37DA3E8732E08 Hootyfruity-TroubleInParadise-Orange-(Oscar-)PV.jpg (Variant 6) C43AC7B7E9449209 A8D27DA3E8730CA8 Shellybean-TroubleInParadise-Black-Oscar-PV.jpg (Variant 15)
Thomas
BC81EDA03D6E1613 B20530B8D8DF88A3 Pigxie-TroubleInParadise-PaleGreenWhite-Thomas-PV.jpg (Variant 10) F95FD018275E76C1 B22530B0C8DC80E3 SourLimeoceros-TroubleInParadise-Black-Thomas-PV.jpg (Variant 15)
Non-matching names
The following cards belong to the same (row 2) obfuscation set, but have differing pinata names. However, their names are all the same length, raising the possibility that a) there is a length "byte" for the name field, and b) the row 2 obfuscation set selection involves bits from that field.
Obfuscation set 2, 3-character name
E7BCB0A0D0C52D37 F283E298458F17B2 ArcticBunnycomb-TroubleInParadise-Black-(Leo-)PV.jpg (Variant 15) C02EFAB3FC45C649 F29EE298258F17B2 Horstachio-TroubleInParadise-Black-(Kai-)PV.jpg (Variant 15) EE89E1A8D8E56D27 F2D5E29D458F37B2 DesertSyrupent-TroubleInParadise-Black-Ben-PV.jpg (Variant 15)
Obfuscation set 2, 4-character name
E4647B3B3B61538F BD60A638592FD482 Chocstrich-TroubleInParadise-Orange-(Liam-)PV.jpg (Variant 6) CEEE69162D3BB0A4 BD6456385936DB82 DesertBuzzenge-TroubleInParadise-Black-Kyle-PV.jpg (Variant 15) D761959578F6492B BD6556381936D202 SourLemmoning-TroubleInParadise-Black-(Luke-)PV.jpg (Variant 15)
Obfuscation set C, 4-character name
D4FBCA4E0F98F7AE 945FD18B2F50D4AC Pretztail-TroubleInParadise-Black-Rhys-PV.jpg (Variant 15) D772B9106F1F0425 945FD4B86C41E59C Fizzlybear-TroubleInParadise-Black-Maya-PV.jpg (Variant 15) 9A586E134D21E62C 945FD5B17C41D49C Vulchurro-TroubleInParadise-Green-Evie-PV.jpg (Variant 7)
Decoded names
Drop row 1 from the barcode to focus on row 2. Change IDs to match the ASCII value of the name's 2nd character (e.g., Kieran, i = 105 decimal).
% grep Blackariants barcodes.txt | cut -d" " -f2 | egrep '^[0-9A-F]{15}C' | sort | ./barcodetxt2bitdiff.pl --short Black_unicorn 114 1098FCBC0C65C0AC Francesca Black_snailpest 105 144263E69C8B58AC Kieran Black_bluebottle 101 2754CB15FAFBD6AC Henry Black_chameleon 105 30B040B6BFBB599C Finlay Black_pony 101 35542B15FBEBC7AC Keira Black_orangebutterfl 101 71B6E394DCDEE3BC Benjamin Black_whitebutterfly 117 909008F68F9B18BC Summer Black_fox 104 945FD18B2F50D4AC Rhys Black_bear 97 945FD4B86C41E59C Maya Black_penguin 97 94826266BE9B188C Daniel Black_snowtiger 121 95B02B15FBF9F3AC Lydia Black_cow 108 C1802815F8CAC3AC Ellie Black_sandant 105 E6769697BF19E6FC Mia
The reader script decodes the columns holding character 2 of the name, and the decoded values are a match.
% ./reader.pl black_variant_names_c.txt Black_unicorn 114 1098FCBC0C65C0AC ID = 01110010 114 Black_snailpest 105 144263E69C8B58AC ID = 01101001 105 Black_bluebottle 101 2754CB15FAFBD6AC ID = 01100101 101 Black_chameleon 105 30B040B6BFBB599C ID = 01101001 105 Black_pony 101 35542B15FBEBC7AC ID = 01100101 101 Black_orangebutterfl 101 71B6E394DCDEE3BC ID = 01100101 101 Black_whitebutterfly 117 909008F68F9B18BC ID = 01110101 117 Black_fox 104 945FD18B2F50D4AC ID = 01101000 104 Black_bear 97 945FD4B86C41E59C ID = 01100001 97 Black_penguin 97 94826266BE9B188C ID = 01100001 97 Black_snowtiger 121 95B02B15FBF9F3AC ID = 01111001 121 Black_cow 108 C1802815F8CAC3AC ID = 01101100 108 Black_sandant 105 E6769697BF19E6FC ID = 01101001 105
Repeating the same process to look for columns matching ASCII values for the following 3 characters, we can read name data from the barcode. It looks like the name field has an (undiscovered) length "byte," since the name data does not appear to be zero-terminated.
% ./reader.pl --names black_variant_names_character5_c.txt Black_unicorn 99 1098FCBC0C65C0AC Francesca Name = ranc Black_snailpest 97 144263E69C8B58AC Kieran Name = iera Black_bluebottle 121 2754CB15FAFBD6AC Henry Name = enry Black_chameleon 97 30B040B6BFBB599C Finlay Name = inla Black_pony 97 35542B15FBEBC7AC Keira Name = eira Black_orangebutterfl 97 71B6E394DCDEE3BC Benjamin Name = enja Black_whitebutterfly 101 909008F68F9B18BC Summer Name = umme Black_fox 0 945FD18B2F50D4AC Rhys Name = hysb Black_bear 0 945FD4B86C41E59C Maya Name = ayaf Black_penguin 101 94826266BE9B188C Daniel Name = anie Black_snowtiger 97 95B02B15FBF9F3AC Lydia Name = ydia Black_cow 101 C1802815F8CAC3AC Ellie Name = llie Black_sandant 0 E6769697BF19E6FC Mia Name = iag}
Unfortunately, the good (other) variants don't appear to keep their name data in the same location. One possibility is that the GoodVariants cards have additional data located before the name data, which shifts the underlying name data in the structure.
./reader.pl --names names_c.txt Black_unicorn 114 1098FCBC0C65C0AC Francesca Name = ranc Black_snailpest 105 144263E69C8B58AC Kieran Name = iera Black_bluebottle 101 2754CB15FAFBD6AC Henry Name = enry Good_hydra 97 308023D28DBA80AC Jayden Name = tll` Black_chameleon 105 30B040B6BFBB599C Finlay Name = inla Black_pony 101 35542B15FBEBC7AC Keira Name = eira Good_chameleon 109 36B268A68FBBB0BC Amelia Name = ilhy Black_orangebutterfl 101 71B6E394DCDEE3BC Benjamin Name = enja Black_whitebutterfly 117 909008F68F9B18BC Summer Name = umme Black_fox 104 945FD18B2F50D4AC Rhys Name = hysb Black_bear 97 945FD4B86C41E59C Maya Name = ayaf Good_vulture 118 945FD5B17C41D49C Evie Name = a}ab Black_penguin 97 94826266BE9B188C Daniel Name = anie Black_snowtiger 121 95B02B15FBF9F3AC Lydia Name = ydia Good_armadillo 116 97913855FD31E78C Ethan Name = yriy Black_cow 108 C1802815F8CAC3AC Ellie Name = llie Good_snail 108 C1926815FC94F7AC Alice Name = u`ie Black_sandant 105 E6769697BF19E6FC Mia Name = iag} Good_bat 105 E676CF169F09E6FC Mia Name = icgy