A mod to make a Nintendo DS play on its own

A mod to make a Nintendo DS play on its own

April 18, 2016 0 By Andrew Delay

After playing lots of Pokémon and Age Of Empires in my early teenage years, my Nintendo DS has mostly been laying around in the closet serving no use. But with the advent of my modding/hacking passion, I’ve decided to tinker around with this relatively old console. 
So I soldered wires to all the buttons (while making sure you could still play the DS normally) and ran the connections to a female header row.

With a multiplexing circuit and a little code on the Arduino UNO, the mod is ready to go!

An external shift register circuit connects to the header row. In the shift register circuit, two daisy-chained 74HC595 ICs provide 16 controllable output pins. These connect to the bases of NPN transistors, which pull the line to ground. 
In the Nintendo DS, a voltage of 1.8V is applied to each button, and when you physically press it, the 1.8 volts are pulled to ground. 
Thus, the shift register circuit imitates a physical button-press and allows you to play the console using a microcontroller.

The mod enabled me to write a program that lets you breed Pokémon and level them up in the daycare. 
I also wrote a program which presses random buttons. I compared its results to the advances made in “Twitch plays Pokémon” (where Twitch users collectively play Pokémon, at one point 50.000 players at once). My random-play program did much worse, the character not leaving its home town until after 72 hours of continuous play. 
This shows that 50.000 users giving button commands at once still achieve more than randomly pressing buttons!