Building a Jump Rope Robot – Super Mario Odyssey


If you’ve played Mario Odyssey there’s a good
chance you’ll have come across the Metro Kingdom’s jump-rope challenge. It starts out slow and the difficulty increments
every 5 jumps before hitting a speed ceiling when you surpass 50. Now, the minigame only rewards you at 30 & 100
jumps; Despite this, on the first day the world record had already exceeded 10,000. So I considered trying to beat it the old-fashioned
way but figured since the rope’s speed becomes constant, I could probably automate Mario’s
jumps using a Raspberry Pi computer. Little did I know another Youtuber by the
name “pimanrules” had begun work on a similar project, but, we’ll get back to that. Here’s the concept: Program a servo-motor to rotate such that it repeatedly hits the jump button in time. Sounds simple enough, but I’d never used a
Raspberry Pi before. So I binged several hours of electronics tutorials
– Wrote *this* code – and eventually got the servo thing rotating. Interestingly it turns out there are two distinct
types of servo: Those which track their absolute angle, and those which do not. I bought the bad one. I had to wait two weeks for the new part to
arrive, during which I found myself obsessively checking the leadboards. And rightly so because on the 15th of November,
Youtuber Fez Pez, had not on scored significantly higher than anyone else but became the first
person to max out the game’s counter. I was actually subscribed to Fez Pez so I
DM’d him on Twitter with something like “Are you some kind of jump-roping wizard person?!” It turned out he wasn’t… In fact, there’s a glitch which allows Mario
to stall in mid-air indefinitely and Fez Pez shared a video about this a few days later. Of course the leaderboard was immediately
flooded with scores of 99,999 set by people who left their Switches running for 16 hours. And for clarity, I tried the glitch for an
extensive 72 hours to see if the leaderboard secretly stores larger values. It doesn’t. Finally the correct part arrived. I added a couple of wires to let me manually
adjust the speed in case Mario’s jumps began desyncing. And sure, perhaps it was too little too late
but I’d come to terms with the fact that the world record was unobtainable. At least I could have the first 99,999 without
using glitches, right? [pimanrules] What if I just coded a micro-controller? Basically my idea was to use that code and
modify it. The easiest to do was to look at the score
display. I wrote a python script that watches that
corner of the screen. Obviously there’s a little bit more complexity
getting the python script to communicate with each other. It presses the A-button about once every 35
frames. I might have gone a little overboard here… [Smash Highlights] On the 21st of November
pimanrules shared the experiences he had creating a bot to exploit Mario Odyssey’s Jump-Rope
Challenge. Honestly, I felt certain that no one else
was crazy enough to be making a bot; And though his approach was marginally different, pimanrules
did of course beat me to the cheese. But surely there’s something I can do with
this…

79 Comments

Add a Comment

Your email address will not be published. Required fields are marked *