Tool-assisted game movies
When human skills are just not enough

Bobo the King's movies:

#38797635962675961 - Possible item table locations in Mario Kart 64
MK possible items 2.wch (1.23kB Memory watch file)
Uploaded 2017-05-05 05:52:44 by Bobo the King (7 files)
For N64 Mario Kart 64 (2 files)
8450 views, 790 downloads
One of these addresses might be where item information is stored in Mario Kart 64.

I did the following:

  • Started a race.
  • Set RAM Search to automatically search for addresses with zero changes. This dropped my framerate to about 1 FPS...
  • Drove up to an item box.
  • Turned off automatic RAM searching.
  • Picked up an item (banana bunch), waited for it to register in my inventory and stop blinking.
  • (Saved the state and my RAM file.)
  • Used my bananas. I made sure no karters were behind me.
  • Searched for addresses that had changed more than once.
  • Reset the change count.
  • Turned around, ran into a banana.
  • Searched again for addresses that had changed more than once.

This left the 59 addresses uploaded here.

Info Download

#24721696049470264 - BizHawk-compatible SMB walljump movie
SMB_walljump_Bizhawk.bk2 (5.98kB bk2 movie [NES])
Uploaded 2015-08-10 07:56:09 by Bobo the King (7 files)
For NES Super Mario Bros. (114 files)
In 00:00.02 [1 frame], 0 rerecords)
55943 views, 680 downloads

BK2 begins from savestate

This is a savestate nearly identical to my previous savestate, the primary difference being that it is native to BizHawk. As before, this is a demonstration file to be used with my brute-force script.
Info Download

#21041971048022691 - Mario Tennis TAS testrun WIP
Mario_Tennis_TAS_testrun.bk2 (17.9kB bk2 movie [GBC])
Uploaded 2015-02-25 14:42:53 by Bobo the King (7 files)
In 46:32.99 [166818 frames], 0 rerecords)
8749 views, 506 downloads
This is a WIP of Mario Tennis I spent a few weeks on following the Dream Team Contest. I'm reasonably confident in the long-term route optimization but the individual matches are horribly unoptimized. To preserve my sanity, I basically just tried different inputs until it resulted in an ace. I generally avoided using luck manipulation to ensure that I could get an ace on the next point.

It would save a little walking time to use the training center much later (on the way to the varsity team), but without power-leveling first, it is hard/impossible to ensure aces against your first opponent. Besides, I figure that upgrading power results in the ball bouncing twice and ending the point sooner, which saves time on all of the first four opponents.

Because not all of the lessons are unlocked initially, I avoided the training court until becoming champion of the senior class (not accomplished in this movie). This may have been a mistake. I am currently stuck on an opponent who I cannot consistently beat with one, two, or three shots. I don't know if she could be defeated with a few upgrades to my spin, but level ups are harder to come by at this stage and they tend to come at the cost of other categories.

My upgrade strategy has been pretty simplistic, but I feel I'm on the right track. My first priority is power because it results in faster points and can take out the first couple of opponents with service aces and return aces. My second priority is control because it is needed to maintain aces against later opponents. My third priority is spin because it might come in handy, though I'm not sure. And my fourth and final priority is speed because as a TAS, the player is omniscient and I haven't yet found a purpose for it. I upgrade any attribute as long as it does not come at the cost of a higher priority one.

My greatest insight into this game has been disassembling its experience point calculator. The formula is actually very simple, although there are still some open questions:

  1. Start with the opponent's "base score". I do not know where/how this is obtained.
  2. Add the total number of games played (NOT games won!) multiplied by some multiplier. I do not know where/how the multiplier is obtained. It is not determined solely by your opponent, since a test showed that completing the training center first increased the value of the multiplier. I suspect it is dependent on the number of stars you have in your completion screen.
  3. Add the total number of service aces multiplied by some multiplier. I do not know where/how... etc., etc.
  4. Add the total number of return aces, smash aces, lob shots, and drop shots, each multiplied by some multiplier. This is done individually, but in my experience, their multiplier is always the same, so the game could have just added them all together, then multiplied.
  5. Repeat steps 3 and 4 for your partner's service aces, return aces, smash aces, lob shots, and drop shots if he is present.
  6. Multiply by 1.5 each if you have the iron racket and/or shoes equipped. (I actually haven't tested this and don't know for certain if that's strictly true.)

From what I remember, the base score starts at 70 (typically incrementing by 10) for the first opponent and the multipliers all start at 2. By the fourth-ranked senior class opponent, the base score is 120, the games played multiplier is 5, the service aces multiplier is 4, and all other multipliers are 3.

I recall that your partner's multiplier's are typically higher than your own. Glancing over my tracelog, however, I don't see evidence for that, so it's an open question. If it is true, however, then it may be a good strategy to upgrade your partner's stats and try to manipulate them into performing return ace drop/lob shots.

For singles, the optimal strategy is clear: perform a service ace whenever possible when you're serving and, when returning, perform a return ace lob/drop shot. I do my best to adhere to this strategy throughout the WIP.

I intended this to be a 100% run, so there is still a lot of ground to cover. One possible improvement to the route would be spending a few experience points on your partner to upgrade his power and control and then playing the junior doubles matches after the junior singles matches (it's faster to reset back to the dorm anyway, so you might as well team up then). Alternatively, you could leave your partner at level 1 and swallow the loss of his service and return ace experience points, which may not make up for the gained experience you "steal" from him. It would be worthwhile to research whether investing in your partner is worth it.

I was hoping to keep this project to myself until it was finished, but since I've hit a bit of a roadblock and I recognize when I'm losing interest in a project, I'm opening this WIP up to criticism and commentary.

Info Download

#11466204865872104 - Brute-force walljump save.
SMB walljump brute-force.fm2 (92.9kB fm2 movie [NES])
Uploaded 2013-12-21 08:46:23 by Bobo the King (7 files)
For NES Super Mario Bros. (114 files)
In 00:00.02 [1 frame], 0 rerecords)
58954 views, 1117 downloads

FM2 file begins from a savestate

To be used with my demonstration brute-force script. Load this state then run the sample script and Mario will execute a walljump (eventually).
Info Download

#10250678766083200 - Super Mario Bros. 1 input optimized
SMB1 optimized.fm2 (401kB fm2 movie [NES])
Uploaded 2013-10-27 14:58:29 by Bobo the King (7 files)
For NES Super Mario Bros. (114 files)
In 04:56.99 [17849 frames], 0 rerecords)
59208 views, 1125 downloads
Super Mario Bros. 1 with all extra input removed. HappyLee's original movie has 7407 inputs, mine has


He ends his movie (but not his input) at the axe. No frames were saved following the last jump. Our inputs (not our movies) are exactly the same length.
Info Download

#10240438833533844 - SMB3 optimized through level 2 (then desyncs)
SMB3 optimized 2.fm2 (845kB fm2 movie [NES])
Uploaded 2013-10-27 03:54:25 by Bobo the King (7 files)
For NES Super Mario Bros. 3 (14 files)
In 10:25.62 [37599 frames], 0 rerecords)
21914 views, 1083 downloads
I ran my optimization script on LordTom, Mitjitsu, and Tompa's Super Mario Bros. 3 run. It removed about 1/3 of all inputs. However, it desyncs after two levels because enemies are on some spurious timer that isn't affected by frames but rather by the user's input.

I swear it's not a problem with the script! I just need to analyze the game's RAM more thoroughly!

Info Download

#10203515734605392 - Dr. Mario input minimization movie
InputMin test.fm2 (71.1kB fm2 movie [NES])
Uploaded 2013-10-25 11:59:55 by Bobo the King (7 files)
For NES Dr. Mario (10 files)
In 00:52.53 [3157 frames], 0 rerecords)
7762 views, 925 downloads
To be used with my input minimization script. You can minimize the input of any other (FCEUX) movie file you want to.
Info Download

Back to user movie storage