Show HN: Tool-Assisted Speedrunning the Boring Parts of Animal Crossing (GCN)
By
hunterirving
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
[1] - 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!
Comments URL: https://news.ycombinator.com/item?id=44257655
Points: 3
# Comments: 0
You might also wanna read
Inside the movement of AI successionists who want artificial intelligence to replace humanity
The article explores a fringe but growing movement of AI "successionists" who believe humanity should create an AI so advanced that it would
Solar desalination system eliminates toxic brine while producing fresh water
Scientists have developed a solar-powered desalination system that converts seawater into fresh water without producing toxic brine, a major
AI-Driven Layoffs Create Unrecognized Grief Crisis Among Tech Workers
The article examines the psychological and emotional toll of AI-driven job displacement on tech workers, arguing that the experience closely
Sergey Brin tells Google AI staff 60-hour workweek is the 'sweet spot' for productivity
Sergey Brin, Google cofounder, wrote an internal memo to employees working on the Gemini AI products recommending a 60-hour workweek as the
Project Glasswing: AI-assisted vulnerability detection finds over 10,000 critical software flaws
Project Glasswing is a collaborative effort launched to secure critical software against potential threats from increasingly capable AI mode
