6 ms·
Show HN: Tool-Assisted Speedrunning the Boring Parts of Animal Crossing (GCN)
I recently dug my Nintendo GameCube out of storage to revisit the first Animal Crossing game. Things were mostly as I remembered, but the game's heavy reliance on a clunky on-screen keyboard quickly wore my patience thin.
Unwilling to accept this subpar experience, I did what any rational person would do and ordered a rare, Japan-exclusive, keyboard/controller hybrid on eBay, then used a Raspberry Pi Pico to 1. listen for keypresses and 2. send simulated controller events to the GameCube, automating typing in Animal Crossing at a Tool-Assisted Speedrun level.
Of course, this oddball controller's keycaps didn't map perfectly to Animal Crossing's in-game character set, so I watched a 10 hour FreeCAD tutorial at 2x speed, then modeled the 7 keycap profiles to create 81 custom, 3D printed keycaps, taking care to include even the most esoteric Greek and Old English characters that Nintendo chose to include in the game.
And then, having solved my original problem, I decided to sniff out some new ones.
I used my homemade TAS device to automate the entry of customizable "Town Tune" melodies, took advantage of a cracked encryption algorithm to give on-demand access to (almost) every item in the game, and, in a Club-Mate-fueled haze, whipped up a Python script to convert arbitrary images to the game's 32x32 pixel custom design format.
Even at superhuman speed, those 1024 pixels took about 3 minutes to input, but that didn't stop me from extending the concept to video - playing Rick Astley's "Never Gonna Give You Up", Bad Apple!, Shrek, and even a short gameplay video of DOOM very, veryyyy slowly (about 7.5 hours to render 30 seconds of footage at 5fps).
Then, realizing that DOOM at 0.0056fps probably wouldn't be the most "playable" thing in the world, I set out to get some kind of video game running within Animal Crossing, and ultimately landed on Snake.
Since it only needs to update 1 pixel for every frame of animation, I was able to get Snake running at around 1ish* frames per second (for technical reasons, it runs at a variable framerate).
Maybe not the most primo experience the modern gaming world has to offer, but without a doubt, technically a video game. It even has its own, in-memory high score ranking (so far I'm undefeated).
The code and design files are distributed for free on GitHub[0], and a build/demonstration video[1] is out now on Youtube.
[0] - https://github.com/hunterirving/pico-crossing https://github.com/hunterirving/pico-crossing
[1] - https://www.youtube.com/watch?v=Yw8Alf_lolA https://www.youtube.com/watch?v=Yw8Alf_lolA
It started as a "quick, simple project", then quickly ballooned into 7 or 8 "quick, simple projects", but I had a ton of fun putting it all together. Thanks for checking it out!
- geoffpado 1y agoI’ve never played the original Animal Crossing, but this is neat! You’re basically hacking quality-of-life improvements into an old game running on original hardware.
- hunterirving 1y agoThanks! Yeah, I was surprised how much utility I could get out of it without directly modifying the game or console themselves. The first Animal Crossing has this great, simple charm. I would definitely recommend it!
- dilDDoS 1y agoThis is so cool and impressive. I loved the original Animal Crossing but also feel like the clunky keyboard input hasn't aged well. Thanks for sharing!
- hunterirving 1y agoIn a way, I'm glad the OSK was so tedious, since it drove me to create this whole crazy project. Thanks for checking it out!
- dylan604 1y agoThis is the most ridiculous expenditure of time in the most hackerish way and I love it! It was a very interesting way to see a game I had never played, and after seeing this, I'd never want to play it without this hack.
- hunterirving 1y agoYes! That's exactly what I was going for :-) Glad to hear you enjoyed it!
- xp84 1y agoYou are absolutely mad, in the most wonderful way possible. And great video as well. Just astonishing how much work went into this, out of what I can only assume is pure hacker spirit. I played a lot of this game a long time ago, and I completely agree that anything that required using the OSK was incredibly tedious.