Super Mario Odyssey is a game that we all know and love, and by drawing inspiration from the popular "Twitch Plays" series we got the idea to try something similar with SMO. Our original idea was to log the keys we press from the keyboard to complete an entire level then mirror the inputs to complete the level a second time autonomously, but we ran into hardware trouble where one of our Arduino boards was dead.
What it does
Our hack uses a custom parser to take an input string of 1s and 0s from an external source and map each bit of the string to a button press. The button press objects are then sent to the Switch from the Arduino board as hex values for the switch to process as button presses.
How we built it
We used an Arduino Mega 2560 with our own version of the firmware to interface with the Nintendo Switch through its USB C port.
Challenges we ran into
Because the Arduino isn't running the correct firmware, we had zero access to its serial debugging features. This made us have to really dive into the static code and find inconsistencies in our algorithms.
Accomplishments that we're proud of
Getting a simple "A" press from the Arduino to register on the switch was a huge stepping stone. This helped us realize that what we were doing was indeed possible, and it would be possible to simulate every button on the Switch.
What we learned
Working with this kind of low level C programming was uncharted territory for all of us, so there was a lot of research that we all had to do to figure it out.
What's next for Automated Super Mario Odyssey
Our hopes with this project is to use a second Arduino to remember enough moves from a computer to complete an entire level of Super Mario Odyssey without human interaction.