Furby source code (1998)
archive.org
archive.org
You can watch a Computer History Museum interview with him here. [2]
[1] http://www.atariprotos.com/2600/software/qbert/qbert.htm
About a minute in, he talks about the work he did at Western Technologies, programming VCS/2600 Raft Rider and Qbert. He also mentions WT getting the contract to make home versions of a Mylstar arcade game that wasn't released called Qbert Circus. I'm not sure if he's confused and was talking about Q*bert's Qubes (which a VCS version was released) or possibly Circus Charlie (which a VCS version was planned but never released).
https://archive.org/details/SPC81A/mode/1up
A very simple SoC with what appears to be a 6502 clone suspiciously missing anything to do with the Y register. Stack is also in a non standard place (the top half of the zero page), probably due to only having those 128 bytes of RAM total and not wanting to give up zero page access.
I thought about it and you could get used to writing code without the Y register pretty quickly...
The actual instruction set manual for SunPlus 6502 CPUs (covers several but you can see the low end doesn't have Y instructions)
https://www.manualslib.com/products/Sunplus-Cpu6502-8692958....
Why don't people relate bitcoin to Furbies? It's always tulips or Beanie Babies. Crypto is much more like furbies.
Either you’re joking, or you absolutely didn’t live through the late 90’s to see the sheer insanity of what the Furby craze was really like. Furbies would be resold for hundreds of dollars, absolutely no exaggeration. It was mind boggling.
I remember Furbys being a punchline on late night TV and such. But I didn't know there was a craze and a shortage.
Of course, those were my college years, and didn't have many young kids in my life... so I guess I didn't know what was popular with them!
Few people are willing to rehash old discussions - so few people want to discuss why Bitcoin is/isn’t like tulips.
Society at large is wildly different than the discussions from here on HN, but at least here, discussions about Bitcoin and cryptocurrencies in general, tend to generate very large discussions, lots of them are about why cryptocurrencies is/isn't like tuplips/beanie babies/$hyped item.
I remember these little critters and I feel much warmer towards them after seeing the human notes of the code author(s).
Unexpectedly interesting.
https://www.reddit.com/r/TIHI/comments/gid2pj/thanks_i_hate_...
Oh my...
If anyone else isn't clear on what circuit bending is.
From Wikipedia:
> Circuit bending is the creative, chance-based customization of the circuits within electronic devices such as low-voltage, battery-powered guitar effects, children's toys and digital synthesizers to create new musical or visual instruments and sound generators.
Also seems straight out of Disco Elysium.
It's actually a SPC81A [1], which supports about only half of the 6502 opcodes. It is also used in some HP calculators.
[1] https://datasheet.datasheetarchive.com/originals/library/Dat...
Mod list #5: "When hungry is low enough to trigger sick counter, each sensor deducts two instead of one for each hit." He made it get sicker quicker when it was on its death bed??
And everything on the mod list is hilarious.
if anyone wants it here you go -
https://github.com/robss2020/OCR-furby-source-code
This is just the PDF run through OCR. I did not manually correct anything, and the results aren't great.
With the moon lander code, they surely had a very good specification of what it was supposed to do.
I worked with the second case once, some IoT-ish sensors that would be buried in the ground in greenhouses, to monitor soil data. The business logic was 90% specified, and of course, the remaining 10% took 50% of the time. Before you ask why we didn't do it in C at the very least, we had a very solid codebase from the previous products. Sure, we had to port things from a Toshiba microcontroller to an STM8, different architectures, but since we were working with 8 or 16 bits inputs it was kinda trivial to test every single possible input to make sure things matched.
My only previous experience with assembly at a Computer History college course where we coded for the PDP-11, the 6502 and a stack machine. So yeah, not a lot. Winging it while admitting you don't know what you're doing can get you decently far in some circumstances.
And don't underestimate the skill of putting together the entire product: being able to create behavior that is relatably live-like for millions of people on such a limited Plattform may not be Apollo-Level genius but is exceptional nontheless.
It would likely be much easier to use a more powerful MCU, at the per unit cost being higher.
* The furby's motions are controlled by one motor and a series of cams and gears, so it should be fairly straightforward to pull out its brains and attach the motor and position sensor to a suitable controller to allow a raspberry pi to control its movements. I've seen this done before (someone put an Alexa in their furby this way) but I think they were only running the motor when the pi was putting out audio, I'd quite like more fine-grained control so it can do all the movements it originally was capable of.
* The unusable crappy speaker and microphone should be pulled out and replaced with better equivalents (maybe even an okay quality one for dual use as a horrifying bluetooth speaker). RGB LEDs could be fitted behind its eyes for added nightmare fuel and another way to express mood. The IR gear could be kept in situ and hooked up to the Pi for some nefarious TV-related uses. I quite like the idea of a proximity sensor too so it can sense people's presence and accelerometers to sense how it's being handled.
* I'll have to fit the furby on some kind of plinth to hold all the new gear because there's no way I'm fitting all this stuff and enough batteries to run it in the original casing. Getting it all running off a bog standard USB-C connection would be nice, might even be able to figure out how to share an internet connection this way to avoid wifi-related hassle.
* I was going to use MycroftAI as its new 'brain' but I think finding some way of hooking it up to ChatGPT might be more fun! Either way I need some kind of text-to-speech and speech-to-text working on the pi for this to happen.
Anyone got any suggestions/improvements to this idea?
Additionally, you could hook it up to a speech to text and visa-versa for another type of hell.
Original Source code for the Furby [pdf] - https://news.ycombinator.com/item?id=17751599 - Aug 2018 (152 comments)
Don't feed it after midnight: https://www.youtube.com/watch?v=Qs1RPclm5MY&t=10s
I'm sure it's just an encoding error, but I find the repeated ÄÄÄÄÄÄÄÄÄÄÄÄ before every comment is strangely fitting for a toy this creepy.
The CPUs are definitely weird, and I ended up porting Ghidra to support u'nSP as part of that project. https://github.com/SamuelWAnderson45/sleigh-unsp Reverse engineering a CPU was a wildly fun learning experience; still proud of that project.
I have also been looking into the newer GeneralPlus GPM4x30 SoCs used by some modern Chinese plug-and-plays with HDMI output, at least by the ones that aren't straight up Famiclones hardwired to a composite to HDMI upscaler. Those are ARM based so much less of a pain to reverse engineer but also much less fun...
http://forum.6502.org/viewtopic.php?f=1&t=560
> I think its not possible to port Linux on a 6502, maybe Minix could be used as a base for a port. As far as I know (??), early versions of Minix did not require an MMU. But check out the LUnix Project, its a kind of unix for c64 and c128 from scratch, ports to other systems should be possible:
https://github.com/jbruchon/elks
I should have a Furby buried somewhere; now that I think of it, it may be the right platform to stick a bigger brain into, make it wireless so that it could be connected to the home IoT network then signal events or alerts.
The great Alan Cox had an hand with the development.