Tamagotchi Hacking Many Tamagotchis Were Harmed in the















































- Slides: 47
Tamagotchi Hacking Many Tamagotchis Were Harmed in the Making of this Presentation Many Tamagotchis Natalie Were Harmed in the Making of this Presentation Silvanovich
What are Tamagotchis? • The same virtual pet toys you remember from the 90’s • Functionality has evolved substantially – Now they can go to school, have jobs, make friends! • Newer versions have an IR interface so that they can communicate with other Tamagotchis
Tama. Town Tama-Go • The “Christmas” Tamagotchi from last year • Same functionality for smaller hands • Supports detachable ‘figures’ with extra games and stores
Goals • • • Decode external communication channels Dump Tamagotchi code Answer the ‘deeper questions’ of Tamagotchi life Make my gotchis rich and happy Have fun!
Infrared Communicatio n
Signal Listening • Listened to the communication between two Tamagotchis using a digital signal analyser and a de-multiplexing IR receiver
Meet Nana and Anna ac 00 26 d 6 0 e 01 00 01 33 87 00 00 33 c 0 0 b 00 00 ff 01 ff ff 7 d ac 00 39 d 6 01 0 e 0 e 01 00 00 34 87 00 00 20 80 8 00 A is letter 1 in the alphabet N is letter 14 (0 x 0 e) in the alphabet
Decoding Circuit • Using signal analyser and python was slow • Made a circuit with the IR receiver, an IR LED and an arduino • Wrote a program that could listen to and decode IR input in real time • Eventually added transmission functionality
Decoding Circuit
The Fun Begins • Rough protocol • And then just try stuff!
Did you know that? • You can give your gotchi unlimited free gifts? – Possible gifts include a CD player, a cell phone and an RC helicopter • Too much unreciprocated gift giving damages two gotchis’ relationship? • You can mate almost any two gotchis? • Gotchis have multiple gender markers?
Teardown
Hardware Teardown • Took apart a Tama-Go and Tamagotchi to determine if code dumping was a possibility • Looked for helpful interfaces • Also took apart a figure
Tama-Go Board EEPROM
Tama-Go Figure
Microcontroller Identification
Identifying the Microcontroller • Considering the lack of external hardware, MCU and code memory were likely under the ‘blob’ • Tried several methods to remove, including acetone and a chopstick • Travis Goodspeed kindly offered to decap the chip with acid
Identification • Started by posting on my blog – No one answered (correctly) • Counted cells to determine memory size – Wrongly • Posted on Tamagotchi forums • Compared pad layouts
• Eventually, success!
GPLB 5 X Series LCD Controller • 8 bit 6502 microprocessor • 1536 bytes RAM • 320 or 640 kbyte mask ROM (depending on model), baked to perfection for each customer • 512 bytes LCD RAM • 4 color grayscale LCD controller • SPI • Audio DAC
Dumping Mask ROM • Not sure how to dump mask ROM, but had a few ideas – Restore a bad state from EEPROM – Determine the test program – Exploit a vulnerability in figure or IR processing – Read ROM with a microscope – Pin manipulation
EEPROM Dump
EEPROM Dump • Attached tiny wires to EEPROM and dumped it using Arduino I 2 C library • Game ‘state’ is stored in a format similar to IR
EEPROM Dump • State format is unlikely to allow mask ROM dumping • Tried overwriting EEPROM – Very error senstive – Resets the game in case of error – Did manage to ‘advance’ myself in the game
Test Program
Test Program? • General. Plus mask ROMs contain a GP test program that can probably dump code • Contacted General. Plus for a devkit – Requires an NDA • Looked around online – No one seems to have a devkit or know the test program
Figure ROM
Figure ROM • Decoding the figure ROM could be useful in a few ways – Making your own Tamagotchi games – Executing code on the Tamagotchi – Dumping mask ROM – Understanding Tamagotchi behaviour
Figure Types • There are two types of Tamagotchi figures, ‘reguar’ and ‘lite’ • Regular figures contain PCBs with blobs • Lite figures contain unpopulated PCB – Act as jumpers • Tried jumper-ing regular figures – Saw functionality of different figures! • Extremely likely figures contain mask ROM
Figure ROM Pads • The unpopulated PCBs in lite figures appear to be the same boards used in regular figures • Makes the mask ROM pad layout visible
Figure ROM Chip • General. Plus makes an SPI ROM with a similar layout • Assumed figures use this ROM
Figure ROM Test
Figure ROM Pins • Based on the General. Plus ROM datasheet, was able to identify the figure pins 1, 4 and 8: Ground/Jumper 2: Serial clock (C) 3: Serial data input (D) 5: Power 6: Chip Select (SB) 7: Serial Data Output (Q)
ROM Dump • Dumped the ROM using an Arduino as SPI master
Decoding ROM • The Tamagotchi has a four-tone display, so looked for strings of 0 x 00, 0 x 55, 0 x. AA and 0 x. FF, representing images – Found a few errors in the dumping sketch • Noticed that these strings were preceded by values which were reasonable for length and width
Decoding Images • Tried decoding these images • Eventually, it worked!
Images • The figure contained a lot of images • Text displays appear to be images • Animations are series of images
The Rest of the ROM • The ROM contains a lot of non-image data • None of this data is General. Plus code • Likely logic information in some sort of interpreted language
Simulating the ROM • Could not obtain compatible flash • Attempted to simulate the ROM using an Arduino, but chip is too slow • Switched to a Chipkit Uno • Got reasonable results simulating ROM, but unreliable • Still in progress
Conclusion
Conclusions • Can ‘cheat’ at Tamagotchi using the EEPROM or IR • Learned about Tamagotchi internals • Still trying to dump the code – Continuing with simulating the figure ROM – Still *hint* looking for the test program *hint* • Most importantly, good times were had by all…
Except for the Tamagotchis
Questions?
More Info http: //www. kwartzlab. ca/author/natalies/ @natashenka