4 ms·
Reverse engineering Animal Crossing's developer mode
- ngcc_hk 8y agoFind the post interesting. Wonder anyone know how the environment should be ... 1) Buy IDA which ver? 2) somehow Load the rom from ... how?
- voltagex_ 8y ago1. Whichever version of IDA supports PowerPC (probably the paid one) 2. It's not a single file "ROM" in this case - you'd take a disc image you either created yourself or somehow acquired, convert it to ISO, then extract the .dol files for analysis.
- pjc50 8y agoLooks like there are plugins. https://gbatemp.net/threads/reverse-engineering-disassembling-a-wii-gamecube-game.476668/ https://gbatemp.net/threads/reverse-engineering-disassemblin...
- kevinwang 8y agoamazing work
- Firerouge 8y agoTL;DR using a second controller in port two to enter: (L+R bumper & Z), D-UP, C-DOWN, C-UP, D-DOWN, D-LEFT, C-LEFT, C-RIGHT, D-RIGHT, A+B, START Unlocks the GameCube animal crossing debug mode without requiring a modded disk/console. Makes you wonder what other games have hidden key combos yet to be discovered.
- voltagex_ 8y agoJak and Daxter had a debug mode that was only found recently, too: https://jadtech.miraheze.org/wiki/Debug_Mode https://jadtech.miraheze.org/wiki/Debug_Mode
- slipstream- 8y agoInterestingly enough, this is the same key combo used to show information on a crash in several N64 games, including Doubutsu no Mori (the original N64 version of Animal Crossing).
- StringyBob 8y agoIt's based on the Konami code [0] a version of which made it into a mouldy peaches song [1] [0] - http://contra.wikia.com/wiki/Konami_Code http://contra.wikia.com/wiki/Konami_Code [1] - https://www.youtube.com/watch?v=ceV62E-c86g&t=92 https://www.youtube.com/watch?v=ceV62E-c86g&t=92
- slipstream- 8y agoI didn't even notice it was a derivation of the Konami code until you mentioned it.
- Boulth 8y agoWow, what an excellent post! It reminds me of Temporal Flux, an editor for SNES game Chrono Trigger that is so elaborate that entire new games were created with it.
- thewizardofaus 8y agoThis is awesome. I love reverse engineering software. There is something so magical about it. I once spent a whole summer reverse engineering crackmes but never moved to actual software hmm.
- kchr 8y agoWhat are crackmes?
- exikyut 8y agoSmall binaries that employ a reduced set of programming/anti-debugging/obfuscation/etc techniques. Sometimes you have an idea what sort of techniques you're up against, sometimes you don't but you have a general idea of difficulty. In all cases the idea is that the possibility domain is bounded and smallish rather than completely unknown. The idea is you conquer progressively more complicated crackmes and this helps you learn how to tackle random binaries you'll find in the wild. Generally the step up after crackmes is to find virus payloads/samples and try and unravel those. I understand Stuxnet uses some of the most complex techniques to date: https://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf https://www.symantec.com/content/en/us/enterprise/media/secu... (ref: https://news.ycombinator.com/item?id=17099969 https://news.ycombinator.com/item?id=17099969, also https://news.ycombinator.com/item?id=2212922 https://news.ycombinator.com/item?id=2212922)
- thewizardofaus 8y agoThanks for sharing! I got lost on my way after crackmes and ended up exploring other topics, but I may have to revisit virus samples :)
- exikyut 8y agoAssembly language is still on my todo list (slooow starter, heheh). I have an old DOS game I kind of want to kill the collision in so I can play it with my terrible coordination :P (This is the game: https://www.old-games.org/games/willy https://www.old-games.org/games/willy - this particular site all is in Hebrew, but it's the only one with this particular version of the game - take a look at the yellow subtext immediately under the title in the screenshot ;P) Btw, FWIW: I'm roughly around the Sydney area, if I'm interpreting your name right. If Google isn't utterly off base, maybe you're in Brisbane or NSW...? (Many matches for your name, didn't want to take chances poking all of them)
- alekratz 8y agoThe debug code (up down up down left left right right B+A start) looks really similar to the Konami code (up up down down left right left right B A start). It's like the debugging equivalent to "don't forget to drink your ovaltine".
- Willson50 8y agoI'm assuming they changed it just enough that normal players wouldn't find it by accident.
- WorldMaker 8y agoEven Konami varied it some between games.
- augbog 8y agoAmazing post! Makes me want to get into ROM hacking :)
- grawprog 8y agoThank you for that. I learned a lot from that post. That was a really awesome and detailed explanation into tracing and debugging a disassembled ROM. Debugging a regular program can be hard enough. Reading things like this always leaves me kind of awestruck at the level of patience and dedication that goes into debugging raw memory adresses and register states. In some ways though writeups like this makes things like this seem more accessible like something you could actually learn to do with enough patience and effort. Thanks again for taking the time to write this process up and share this.
- danbolt 8y agoI really enjoyed reading this as Animal Crossing had a big impression on me as a child. It was engaging and full of character, but didn't have the same structure as other adventure/platformer games I had owned. It opened my eyes up to how interactive media could feature content that was exploratory, rather than goal-oriented. A few weeks ago, a coworker said they were surprised about Minecraft's enduring popularity, as its gameplay seemed somewhat "pointless" to them. I think games like Animal Crossing help show that games don't necessarily need to exist as an existential need or pastime, and that their value can come from simply allowing your to express yourself in some space. Or, The Elder Scrolls has had a lot of enduring popularity, and I think a lot of that comes from making a character and casually having fun.