Super Monkey Ball Touch & Roll is the third Super Monkey Ball game featured on a handheld console, and the first for the Nintendo DS. The goal of the game is to roll a monkey in a ball around various stages, collecting bananas for extra lives and overcoming tons of crazy obstacles to reach the finish line on each level. It uses the DS touch screen as the primary controls for maneuvering the monkey around the level, although D-pad control is also supported.
The game carries some legacy, as it’s considered the last “mainline” Super Monkey Ball game by the community, bringing old SMB1 and SMB2 levels to the handheld and adding its own. After more than 4 years since the start of our TASing efforts, we are proud to bring you the first complete TAS of Touch & Roll, finishing all 120 stages of the game.
- Emulator used: DeSmuME 0.9.11
- Aims for lowest In-Game Time
- Bus-Level Timing Off
Note: Due to heavy splicing and hex editing, the rerecord count is 40-60% smaller than the actual rerecord count. We tried to track them to the best of our ability.
This run is "all worlds newgame+" because on a clean save file, the last two worlds are not unlocked right away. We wanted to show off all of the levels in the game, so we opted to use an almost-completed save file to make things easier. Why not just unlock worlds 11 and 12 during the run? Well... World 1 is unlocked by default. Completing World 1 unlocks World 2, etc. up until World 11 (Studio One). To unlock Studio One, there are two special red goals in the game. One is on 8-1 Hollow Diamond, the other is on 9-2 Converse. By reaching both of these red goals in Challenge mode as well as completing World 10 (Zero G Station), Studio One is unlocked. That part is easy enough, and realistically would only lose a couple seconds in a TAS.
The problematic part is unlocking World 12, Mesh Mosh. After completing Studio One, a counter will appear in the corner of the screen reading '0/2006'. To unlock Mesh Mosh you need to collect 2006 bananas in total in Challenge Mode. Even in a TAS, this would be over 20 minutes of doing nothing but banana collecting, which of course we decided was really boring and uninteresting for a TAS. This is the reason we did newgame+, it does nothing more than to allow us to skip 1 red goal (on 8-1 the red goal is already faster), as well as skipping a brutal amount of grinding for bananas.
Because of the use of SRAM, here is a verification movie which gives the required SRAM for the movie to sync: http://tasvideos.org/userfiles/info/49626841129450668 This movie will sync on DeSmuME 0.9.9 with bus-level timing off.
Soft Resetting to skip credits
After a world is completed, an unskippable credits sequence will play which lasts for about 5 minutes each time. Luckily for us, the next world is unlocked before the credits sequence plays. We wait for the first frame it unlocks, and then soft reset to bypass the credits. This is valid because even on a clean save file this would unlock the next world.
We fall out on bonus stages because there is no goal on them. They are considered completed when every banana is collected on the stage, but this is not necessary to progress through challenge mode. It is always faster to simply fall off the stage for a 'Bonus Finish' to continue on with the run.
Movement follows some very simple rules and is quite restricted. Although the D-pad can be used to control the monkey, the movement speed is ridiculously slow. This leaves us with the only other input method possible, the touch screen, to tilt the stage around. Despite these simple controls, there are many oddities and exploits at our disposal.
Many of the movement rules are similar to Super Monkey Ball 1 & 2, so many of the techniques are the same. The T&R engine has two main differences: the ball is much smaller than in SMB1/2, and acceleration is much faster. These two differences account for significant strategy changes, even on stages that were ported from the previous games.
Every pixel of the touch screen gives a different input to the game. With the size of the touch screen, this means there are 49,152 possible inputs on any given frame, giving us more precision than an analog stick. The touch screen is rectangular, but gets normalized to a square, which means we have more precision horizontally than vertically.
At first glance, it may seem that the player controls the tilt of the stage and not the movement of the monkey. In fact, the player controls both. You can think of the controls as changing gravity rather than moving the stage or the monkey. This is why it's possible to change direction in mid-air, without contacting any parts of the stage.
Having no input, as well as holding an input near the center of the screen, allow us to fall much faster than normal. Because of an oddity in how the game gives downward speed, holding slightly up-center is the fastest way to gain speed while falling.
Similarly, inputting near the corners of the touch screen (away from the center) will cause the monkey to fall more slowly. This is more useful than it would seem, and is used for one of the main movement techniques of the run: boosting.
Nearly every level begins with an up-left or up-right input, called 'boosting', and this is faster than going straight for a few reasons.
- Diagonal movement is faster than moving straight.
- Because we are holding a diagonal input, we can take advantage of slow-falling since we start each stage in the air. We can net two or three extra air frames, which benefits us because acceleration is faster in the air than on the ground.
- Normally, turning from diagonal to straight or from one diagonal to another would lose speed.
By alternating between two diagonals while we are in the air and have a very low starting velocity, we can negate the speed loss from turning back and forth. This makes boosting faster overall even though normally, moving back and forth in a snaking pattern would be slower.
Because acceleration is much faster in the air than on the ground, getting air time as soon as possible (and as frequently as possible) is crucial. We can do so by 'clipping': approaching an edge, bump, or corner with decent speed to make us airborne.
On the edge of a platform, you can use the controls to negate gravity pulling you off, and stay balanced on this edge without falling. This technique is faster around sharp turns because it allows us to cut the path shorter by being on the innermost part of the curve. It also allows us to take any turn without slowing down, because the edge will redirect us while we edge grind. There is no need to slow down or adjust our direction.
A consequence of slow-falling, by holding up-left and up-right in alternating motions while in the air, falling is much slower and allows us to reach otherwise unreachable places.
Stages with curved surfaces require many small polygons to approximate the intended rounded shape. Because there is a limit to how many polygons the game can use, many curved surfaces are not approximated well, and are bumpy and jagged. The edges where these polygons meet are not smooth, and with the right direction and speed we can get a bounce off of a seemingly flat area. We also speculate that there are 'misalignments' between these polygons, causing edges to stick out and make it even easier to get a bounce.
One level that comes to mind that does not have any speed bumps like this is 8-3 Back Round. Although it has a curved edge, there are no spots for bounces because the edge is a perfect semicircle, and can be approximated much more accurately than other odd curves.
Clipping through platform edges
With large enough speed, clipping straight through many platforms is possible. The ball is smaller than previous games which makes it even more common to go through parts of the stage. Even at low speeds, clipping is possible where two polygon edges meet depending on how big the misalignment is.
Clipping through goals
The goals also have some odd collision, best exemplified by 1-10 Spiral Staircase and 2-6 Starfish. With enough speed (upwards of 200) the monkey can phase through the top of the goal and trigger a finish by clipping through to where the goal tape is.
Alternatively, the monkey can also phase through the front of the goal but only under special circumstances. If the goal is moving (translating, rotating, or any combination of the two) then the collision near the goal ball is straight up wonky. On levels such as 1-9 Assimilate, it is effortless to actually perform this clip, the normal collision for the goal seems to disappear. On stages where the goal is not moving, it is impossible to clip through the goal this way. Passing through the underside of the goal ball is possible with high speeds, but any higher position and the goal is completely solid and can't be passed through.
Stage by stage commentary
All human records can be found at https://www.cyberscore.me.uk/game/250
|Level||Human record||TAS||Frames saved||Comments|
|1-2 Sine Wave||52.70||52.78||5||We wanted the smoothest movement possible along the outer walls. Minimizing the bounces off of the walls kept our speed high and saved us the 5 frames.|
|1-3 Curvature||56.81||56.83||1||This level almost instantly killed this project when we first started. The collision makes absolutely no sense, but eventually we managed to tie the human record. After some more attempts, we even managed to save a frame.|
|1-4 Progenitor||50.56||51.60||62||Balancing on the tiny edge of the rails is much faster than rolling in the middle of them. It also allows us to get a crazy speed bump on a random piece of the rail to get some air time.|
|1-6 Anaconda||53.55||53.93||23||This level went through tons of improvements. We have done at least 3 different variations of movement for this level, and this ended up being the fastest. We get the lowest bounces possible, along with a clip straight through the floor so that our bounce can be even lower.|
|1-7 Fluctuant Travelator||54.06||54.21||9|
|1-8 Swathe||56.05||56.03||1||Another project killer, I think this level has taken us 40k re-records collectively and it wasn't until years after we started this project that we improved upon the human record. After the first high bounce from the edge of the moving bridge, we realized that counterintuitively, it's faster to land on the inner bridge part than it is to land on the edge and grind on it. The clip at the end is also faster even though we slow down to achieve it.|
|1-9 Assimilate||56.96||56.96||0||Ties the human record, this trick is much more specific than it seems. A tiny bounce off of the ridge is almost always nonexistent, or too high.|
|1-10 Spiral Staircase||57.73||57.78||6||One of the only times in the entire run that we actually clip completely through the top of the goal. This glitch saves us a considerable .10 seconds in such a short level.|
|2-1 Mini Bump||58.38||58.38||0|
|2-2 Double Scepter||55.01||55.05||2||The improvement here is the extra bounce off of the edge of the green platform for slightly more air time.|
|2-3 Offsetting Incline||52.23||52.25||1||We get a small bounce on each platform edge to speed us up.|
|2-4 Pincer||57.31||57.33||1||This is the fastest cycle through the pincer, and going any sooner would cause us to hit one of the teeth and fall off.|
|2-6 Starfish||57.01||57.08||4||There is just enough speed to clip off of the lip of the starting platform and land on the arm of the starfish, going over the top and clipping through the top of the goal. The special thing about this level is that the goal itself is moving, which causes us to clip through very easily, unlike 1-10 which required 200+ speed.|
|2-7 Deviant Drop||56.98||57.00||1||It's fastest to balance on the lip and then go off of the edge as soon as possible.|
|2-8 Receding Curves||56.50||56.50||0|
|2-9 Displacement||54.83||55.15||19||Trying to skip across to the squares as soon as possible is not optimal, it's better to waste a few more frames waiting so that we can get super low bounces across the squares once they move closer to us.|
|3-1 Racket||55.95||55.96||1||Silverbawxer thought of this clip and actually did it on console first, saving 2 frames over the previous human record. After tons of rerecords and optimizations, xy2_ saved another frame.|
|3-3 Parasite||55.46||55.46||0||Slightly odd movement to get over the platform wall. We get a bit of speed before hopping the wall, which also lets us barely make it to the goal. If we went straight for the wall at the start, we would fall short of the goal.|
|3-4 Web Matrix||53.36||53.70||20||Bouncing on the bumpers gives us more speed than we bump into them with, so there is always an advantage to using them to gain speed. (Also it looks cool.)|
|3-6 Beveled Edges||57.40?||57.35||-3?||The human record for this level is only one of two in the entire game with no proof of it. We have no idea how this time was achieved (or if it is a typo in the submission or whatever else could be true.) We tried for a long time but .35 was the best we got. The slowdown near the end is intentional in order to not hit the goal post.|
|3-7 Betting Course||56.55||56.56||1||Instead of going straight for the goal, we get launched backwards by the tumbler, into a pole, and then back towards the goal to save a frame. This strat is insanely precise, and getting to the goal at this angle is much harder than it seems.|
|3-8 Halo||52.06||54.00||116||This stage most likely has the most polygons that make up its shape, and that's why there are such massive speed bumps on it. There is no easy way to find where this collision is possible, the only reason we managed this is because the human record gets the same first bump as the TAS. Silverbawxer found it by a complete fluke, and other players have also gotten lucky enough to find this bounce.|
|3-9 Infinity||55.05||55.26||10||The last bounce hits the front edge of the steps, getting a lower and faster hit towards the goal.|
|3-10 Millipede||55.56||55.66||6||You would think a faster time is possible, but this is in fact the fastest speed we can get from the arm squeezing us into the floor.|
|4-1 Epicenter||55.25||55.90||39||The original strategy here is to land in the tube part and ramp off of it across the gap. Four new ideas eventually led to the discovery of this bounce off of the side.|
|4-2 Wavy Brick Road||55.11||55.11||0||Strange speed bumps and difficult collision made TASing this stage a very long guessing game of trial and error.|
|4-3 Rollercoaster||55.16||55.36||12||Dropping off of the railing early is obviously faster, but it also allows us to ramp off of the curved rail to gain more speed. Like 1-4, balancing on the pinpoint edge of the rail is faster than riding between the two.|
|4-4 Descending Rings||56.85||56.85||0||Thank you Gonquai.|
|4-8 Oscillating Waves||55.31||55.31||0|
|4-9 Oblivion||57.65||57.65||0||Fast falling here to save a frame, although the human record manages this as well.|
|5-4 Long Winding Road||50.15||52.73||155||The curved edges on this stage have speed bumps, and we get one after almost every turn.|
|5-6 Conveyor||41.90||56.03||848||Very similar to the SMB1 strategy. Despite this game having a smaller monkey ball and faster acceleration, bumpers in this game do not transfer as much momentum as in the original game, so this strat is almost impossible for human players.|
|5-9 Tunnel Vision||55.66||55.80||8||Clipping into the floor is not always faster, it just happened to be optimal for this level.|
|5-10 Leviathan||54.26||55.13||52||Totally new strategy, it is barely possible to make it over that gap even with a run up from the left side and multiple small bounces along the way.|
|6-1 Meandering Road||51.78||52.03||15|
|6-3 Coil||41.25||52.96||703||Instead of going around the entire coil, we use the starting platform to bounce straight across, making this the 3rd biggest time save in the run. The inputs are absurdly precise, and it is seemingly random which inputs allowed us to bounce further across.|
|6-4 Tilted Stretch||55.35||55.35||0|
|6-7 Menacing Conclusion||55.78||56.20||25|
|6-8 Impediment||56.28||56.41||8||A clip off of the front edge of a step allows us to bounce low enough to make it to the goal without slowing down.|
|6-9 Free Ride||51.96||52.75||47|
|7-2 Lateral Undulation||57.05||57.48||26|
|7-4 Undulating Road||51.43||51.83||21|
|7-7 Plummet Chasm||58.06||58.06||0||Easy tie.|
|7-9 Rippling Road||55.83||55.86||2|
|7-10 Rotary Bypass||51.23||51.38||9|
|8-1 Hollow Diamond||57.36||57.38||1|
|8-2 Spiral Under Stars||58.25||58.25||0|
|8-3 Back Round||47.25||49.15||114|
|8-4 Staircase||56.21||56.25||2||Going up stairs in a monkey ball game is always a fun time.|
|8-5 Spinning Sun||58.01||0|
|8-6 Parallel Peaks||54.48||54.86||23|
|8-7 Circular Waves||58.31||58.31||0||It's faster to get a higher bounce here rather than the lowest one possible, because the top of the goal is closer to the starting position.|
|8-8 Obstacle Course||57.28||57.31||1|
|8-9 Pinball Pursuit||53.46||54.50||61||Normally, you are meant to wait for the flippers to hit you up towards the goal, but landing on this bumper gives us just enough speed to skip the flippers entirely.|
|8-10 Road to Nowhere||35.55||53.63||1085||Around 5 seconds in, we come into contact with the platform at 150 speed, and the very next frame leave it with 300 speed. We can't really explain this at all, and when it happened the first time it was a fluke. This is enough speed to pass through the bottom of other platforms for a shorter path straight to the goal. This stage also has the largest frame save over the human record, shaving off 18.08 seconds.|
|9-1 Gyration||55.00||55.06||4||Speed bumps on the second part of the platform, as well as an extra bounce off of the last corner saves us the 4 frames.|
|9-3 Motion Gear||53.33||55.80||141|
|9-4 Deflecting Protrusion||55.01||55.15||8|
|9-9 Wheel of Fortune||58.76||58.76||0|
|9-10 Starlight Express||56.65||56.88||14|
|10-2 Rails||52.70||54.31||103||A random speed bump on the fat rail is the only thing that made it possible to skip across the stage like this.|
|10-3 Perpetual Motion||55.56||55.63||4|
|10-4 Scraper Descent||56.88||56.90||1||Fast-falling taken to the extreme. There are many adjustments, but each serves its purpose: fast fall, slow fall and fast diagonal movement. Many little optimisations led to shaving this frame off.|
|10-5 Drop Downhill Drop||55.53||0|
|10-9 Sieve Track||56.31||56.33||1|
|11-2 Cherry Drop||56.88||56.88||0|
|11-3 Truffles||57.76||57.80||2||We thought Wavy Brick Road was collision hell until this stage. The little bounces at the very beginning is what builds up enough speed to improve upon the human record. Once again, thank you Gonquai.|
|11-9 Prohibition||56.95||57.20||15||New strategy, the red thingies are moving fast enough to give you a speed boost even if you have to go out of your way to hit them.|
|12-1 Whiplash||55.60||55.93||20||Rather than ramping up the pyramid like a halfpipe, it's possible to get hit by the launcher into the ramp before hitting the ground. This lets us take a more direct path to the goal.|
|12-8 Cavity||56.40||56.88||29||We clip off of the front edge of the bottom platform, but from the inner side through the top of it… you'll know what I mean when you see it.|
|12-10 Palpitation||53.06||53.75||41||The curved shape of the goal 'cup' is what lets us clip clean through the bottom and right up into the goal tape.|
|Total Frames Saved||4575||Roughly 76.25 seconds saved over all human floor records.|
History of this run
The first TASing efforts on this game were by xy2_, a complete newcomer at the time. Joined by Silverbawxer, they both quickly struggled upon realizing the difficulty of TASing a Super Monkey Ball game. After getting stuck on only the third level in the entire game, efforts stopped for a long time. The project lay dormant for more than 3 years, where xy2_ occasionally made some individual level TASes of later stages.
In August 2018, Taechuk made the first optimised full TAS of T&R in a month. Although it contained many mistakes and only beat a few human records, it showed lots of potential for the game as well as for Taechuk as a TASer. The team reformed with Taechuk, Silverbawxer and xy2_ all joining up, where almost all work was done in secret for more than a year. Gonquai later joined the team and helped knock down some of the harder levels to beat, and with that, all 120 levels had finally been optimized.
That brings us to today. Thanks to the game being very hex-friendly, we had complete freedom over which order the stages could be done, and could easily come back to them later to check for possible improvements. Many stages have had many different strategies and improvements by different players, sometimes over the course of months.
At this point, we feel that the TAS can stand on its own two feet, and proudly submit it in this final state. We optimised each level to the best of our abilities and hope it is an entertaining movie to watch.
I want to thank the team for being great, it was incredibly fun to work on this project with them. Thanks to xy2_ for his script which made TASing this game better and allowed for more optimisation, Silverbawxer for having more knowledge of this game, since he has most WRs, and Gonquai, he managed to do some of the hardest things in this TAS. Also shoutout to danylopez123 for being a baseline for my first, rough TAS.
Thanks to xy2_ for his technical knowledge, as well as his incredible mental fortitude for TASing. This man probably doubled the rerecord count himself, I can only dream of having that kind of patience. Thanks to Taechuk for making the first full TAS and inspiring us to even start this project all together. He and xy2_ got accustomed to the physics and strategies in this game very quickly, considering they have not played the game nearly as much as I have. Thanks to Gonquai for swooping in to help us when we felt completely stuck on a few levels. Without any of them this TAS really would not have happened at all!
This TAS is my first major undertaking, spanning four years and more than an entire year of active work in its prime. Thank you to the team who made this possible, as the run would still be in its infancy were it not for the spirit of my teammates. Without their presence and ability to tear apart each other’s TASes, we would not have pushed this much for optimisation.
Started TASing SMB earlier this year, really opens the doors as to what is really possible to do in these games.
Thanks to MisterFladdermus for his very early TASing efforts on this game, as well as the entire SMB community for showing the potential of playing and TASing Super Monkey Ball games.
Notes for TASVideos staff
We have included our own encode of the TAS using a different build of DeSmuME (r5447) to upscale the graphics x4. Although this only affects the 3D graphics (stage geometry) we think it looks a lot better than the original resolution. We would prefer if you link to our encode in the description of the TASVideos encode in case viewers prefer to see it this way. We still want an encode on the TASVideos channel so that more people will see our movie. (Our channels are all tiny!)
Our suggested screenshot is frame 37203.
Our suggested description is:
Super Monkey Ball: Touch & Roll for the Nintendo DS has our favorite team of monkeys rolling around in a huge mix of old familiar levels, as well as totally brand new stages. The monkeys are tasked with beating 120 levels, and they whip through these stages at higher break-neck speeds than ever before. Taechuk, Silverbawxer, xy2_, and Gonquai utilize every trick up their sleeves to grind, bounce, clip, and fly their way through any obstacle the game can throw at them. Many of the techniques are explained in the submission text because if you blink, you just might miss them.
Memory: Updating submission file to properly incorporate SRAM usage.
Memory: Optimization appears great.
This movie has all the typical Monkey Ball tricks and is a joy to watch even if I don't understand how the authors came up with the conclusion that this is the "last mainline monkey ball game". The audience enjoyed it as well.
The SRAM usage appears justified to me. The grind for 2006 bananas is incredibly boring and is worth skipping. However, SRAM usage does not mean the submission is "newgame+" as it was previously labelled. "Newgame+" implies starting from a new game with some sort of progress carried over, usually in a mode labelled as such. This submission merely starts from a file that has completed the grinding so it should not have that label. Additionally, "all worlds" would be implied by simply labeling it the mode name.
I confirmed this movie syncs on DeSmuME 0.9.9 with sram.
Accepting to Moons.
Spikestuff: Time to take my mind off of DS just for a bit with some DS. Publishing.