User Files from Bobo the King

Upload All User Files

#38797635962675961 - Possible item table locations in Mario Kart 64

MK possible items 2.wch
10966 views, 1018 downloads
Uploaded 5/5/2017 5:52 AM by Bobo the King (7 files)
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.

#24721696049470264 - BizHawk-compatible SMB walljump movie

In 00:00.01 (1 frames), 0 rerecords
Game: Super Mario Bros. (NES)
69589 views, 918 downloads
Uploaded 8/10/2015 7:56 AM by Bobo the King (7 files)
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.

#21041971048022691 - Mario Tennis TAS testrun WIP

In 46:32.98 (166818 frames), 0 rerecords
Game: Mario Tennis (GBC)
11491 views, 728 downloads
Uploaded 2/25/2015 2:42 PM by Bobo the King (7 files)
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.

#11466204865872104 - Brute-force walljump save.

SMB walljump brute-force.fm2
In 00:00.01 (1 frames), 0 rerecords
Game: Super Mario Bros. (NES)
72578 views, 1355 downloads
Uploaded 12/21/2013 8:46 AM by Bobo the King (7 files)
To be used with my demonstration brute-force script. Load this state then run the sample script and Mario will execute a walljump (eventually).

#10250678766083200 - Super Mario Bros. 1 input optimized

SMB1 optimized.fm2
In 04:56.99 (17849 frames), 0 rerecords
Game: Super Mario Bros. (NES)
72832 views, 1399 downloads
Uploaded 10/27/2013 2:58 PM by Bobo the King (7 files)
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.

#10240438833533844 - SMB3 optimized through level 2 (then desyncs)

SMB3 optimized 2.fm2
In 10:25.62 (37599 frames), 0 rerecords
Game: Super Mario Bros. 3 (NES)
32187 views, 1336 downloads
Uploaded 10/27/2013 3:54 AM by Bobo the King (7 files)
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!

#10203515734605392 - Dr. Mario input minimization movie

InputMin test.fm2
In 00:52.53 (3157 frames), 0 rerecords
Game: Dr. Mario (NES)
9348 views, 1141 downloads
Uploaded 10/25/2013 11:59 AM by Bobo the King (7 files)
To be used with my input minimization script. You can minimize the input of any other (FCEUX) movie file you want to.