The source code to the original Furby has leaked. If you were a parent in the 1990’s annoyed by its incessant chirping (or indeed, if you were a kid doing the annoying), now’s your chance to dive into its internals and see how it works.
The Furby’s source code is written in 6502 assembly. That said, it’s worth pointing out that the original Furby itself didn’t run a MOS Technology 6502 chip — the likes of which also powered the Apple II and the Nintendo Entertainment System.
The SPC81A is an 6502-like SoC, but there are some pretty distinct differences. It supports far fewer instructions compared to mainline 6502 chips. It’s also built for low-voltage applications, and is simplified in order to make it cheaper, which is crucial given it went into toys.
It’s worth emphasizing that this code belongs to the original Furby, which Hasbro initially released in 1998.
The toy saw a refresh in 2012, which introduced a bunch of new features, most notable of which was a companion app.
I’ve never developed using 6502 assembly before, but the code itself is thoroughly documented through comments, making it fairly easy for the unacquainted developer to parse.
There’s not actually that much code to sift through. The document totals 297 pages, a large chunk of which are occupied by documentation and comments. That’s impressive when you consider how the Furby was actually kinda cutting-edge for its day.
For example, one stand-out feature is how the toy would start by speaking a fictional language called “Furbish,” and over time would gravitate to using English words. This mimicked the language learning process, and gave kids a reason to continue playing with the toy, long after the holiday season had finished.