Mega Man: Dr. Wily's Revenge in 16:56.99 by Noxxa

Encode (lsnes):

This run improves [336] GB Mega Man: Dr. Wily's Revenge by Bag of Magic Food in 17:11.30 by 1384 frames (00:23.17 seconds).
Note that the previous run used VBA-rr, which used a different framerate (60.000, as opposed to lsnes' and BizHawk's ~59.727) and a different definition of what constitutes a frame, which causes the difference to look like less than it actually is. The frame difference is determined by comparing AVI output.
In addition, BizHawk has slightly longer loading times and lag, which leads to some time loss in some areas.

Game objectives

About the game

Mega Man: Dr. Wily's Revenge (known as Rockman World in Japan, and also known as Mega Man I or Mega Man World) is the first installment of Mega Man on the Gameboy. The plot is minimal - after being defeated in Mega Man and Mega Man 2, Dr. Wily swears revenge of Mega Man (again) and brings out some old Robot Masters from the aforementioned games, as well as the first Mega Man Killer robot named Enker, to do the job. Obviously, Mega Man defeats them all, defeats Dr. Wily yet again, and the world is safe again until the next game is released. Yes, it's a really plain plot.

Improvements

Bag of Magic Food's run, even though it's dated 2005, was very optimized. Most of the individual improvements here come from heavy subpixel optimization, and occasionally lag management, shaving off mere frames at a time. There are only a few instances where I saved time through changing strategies, and even those would save only small amounts of time.
There are some very significant improvements, however: it turns out that pressing A or B during certain frames of the pre-Wily Castle and pre-Wily Space Station cutscenes allows you to speed up some events of the cutscenes. In the latter case, it's even possible to skip a large part of the cutscene, saving over 15 seconds.
The next big difference is a change in boss rush order. Instead of Bag of Magic Food's Bubble-Heat-Quick-Flash route, I opted to go for Quick-Flash-Bubble-Heat instead. This was so I could use Quick Boomerang against Bubble Man to defeat him faster, saving several lag frames. However, it means the Quick Man fight became longer.

Table of improvements

There are two comparison tables: one comparing the previous run with the current run on lsnes, and one comparing the previous run with the current run on BizHawk.
Stage nameframestotal
Pre-Cut Man (loading)-1-1
Cut Man stage-22-23
Cut Man boss-1-24
Pre-Elec Man-1-25
Elec Man stage-44-69
Elec Man boss-7-76
Pre-Ice Man+1-75
Ice Man stage-10-85
Ice Man boss0-85
Pre-Fire Man0-85
Fire Man stage-21-106
Fire Man boss-7-113
Pre-Wily Castle-192-305
Wily Castle stage-14-319
Boss rush-48-367
Enker-2-369
Pre-Wily Space Fortress-961-1330
Wily Space Fortress-49-1379
Wily boss phase 1-5-1384
Wily boss phase 20-1384
Stage nameframestotal
Pre-Cut Man (loading)+3+3
Cut Man stage-22-19
Cut Man boss-1-20
Pre-Elec Man+8-12
Elec Man stage-44-56
Elec Man boss-7-63
Pre-Ice Man+7-56
Ice Man stage-10-66
Ice Man boss0-66
Pre-Fire Man+6-60
Fire Man stage-21-81
Fire Man boss-7-88
Pre-Wily Castle-183-271
Wily Castle stage-14-285
Boss rush-30-315
Enker-2-317
Pre-Wily Space Fortress-957-1274
Wily Space Fortress-49-1323
Wily boss phase 1-5-1328
Wily boss phase 20-1328
Notes:
  • Due to the difference in boss rush route, it isn't possible to directly compare times in the route. These are the individual changes in each boss rush fight:
    • Quick Man: +265 frames
    • Flash Man: -12 frames
    • Bubble Man: -298 frames
    • Heat Man: -8 frames
    • 23 frames (BizHawk)/5 frames (lsnes) were lost due to additional loading times in between the fights.

Stage by stage comments

Cut Man

  • A large amount of the stage-by-stage comments from Bag of Magic Food's submission still apply to the overall run. This run mostly uses the same strategies.
  • One of the first things that motivated me to continue the run in the first place was a 4-frame save at the first enemy by better subpixel/acceleration manipulation.
  • The post-battle dance after Cut Man's fight probably took twice as long as the boss battle itself. I spent a lot of care at trying to make them as entertaining as possible. It's also, to me, the most memorable part of Bag of Magic Food's run. Hopefully I succeeded on the entertainment here (and in the other bossfights).

Elec Man

  • The way the stage is laid out with several ladders allows for a lot of room for subpixel optimization. In most rooms here, I saved at least 1 frame from subpixel optimization.
  • Near the end of the stage, at the second room of the last big ladder section, I save 1 frame by jumping up to the middle Octopus Battery instead of walking into the bottom one. This is because the middle one is 1 pixel closer and thus can be hit sooner.

Ice Man

  • On ice, jumping costs a few subpixels when landing. Therefore, I minimize the amount of jumps in this stage.

Fire Man

  • On the first Hothead enemy, it turns out Bag of Magic Food overkilled him by one damage point (it has 10 hit points, buster shots do 1, and Elec Beam does 2 per hit). I use 1 buster shot more, so it is destroyed with one Elec Beam hit less.
  • The last room with all the Hotheads was very hard to optimize. A lot of precision is required to optimally hit the Hotheads. One of them can't be destroyed in one shot due to its position.
  • I move a bit to the left during the Fire Man fight to manipulate him to walk further to the right. This saves a few frames.

Wily Castle

  • The first really big timersaver happens here. Pressing A or B at certain frames (or just autofiring A and B for the same effects) allows me to save 183 frames in the pre-Wily Castle cutscene.
  • The second Mole room, near the end of the stage, was by far the hardest room to optimize in the entire game. Both Mole rooms are hard, because the position of the moles is dependent on the frame you destroy them and your position. Do anything slightly different and a Mole will come in your way and block your path.
  • I take a different route for the boss rush, taking on Quick Man first instead of Bubble Man. This is because Bubble Man's fight is very laggy, so it's better to have that one done as fast as possible. Quick Man's fight is nearly lagless.
  • Starting with a Mega Buster shot also saves some frames in Flash Man's fight.

Wily Space Station

  • As if the cutscene time-saver before Wily Castle wasn't large enough, the pre-Wily Space Station cutscene allows you to skip an entire section, saving over 15 seconds in one go.
  • The trick with Carry to put it so close into a wall it disappears can be done at the end of the first room, saving 17 frames.
  • Carry ammo is weird. Look at the ammo consumption the last time I use it.
  • Like Bag of Magic Food, I end input two frames later than is necessary, so no more input can stall the ending. (You can still press A+B+Start+Select to soft-reset during the ending, but let's just ignore that).

Other comments

Recommended screenshot:

TODO (suggestions?)

Thanks:

Thanks to Bag of Magic Food, for creating a very high quality run, which would last for over 8 years, for me to beat. It was an interesting challenge to improve on a run that was already very optimized to begin with.
Thanks to Nach for support and motivation.
And thanks to everyone else who supported me in the game thread!
And thanks to you for watching and/or reading this!

Nach: Turns out this run runs in lsnes also, so judging...
Noxxa: Replaced submission file with a lsnes conversion which finishes the game 56 frames faster.

Nach: Very nice run. Good feedback. Accepting as improvement to existing run.
Ilari: Processing

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #4122: Noxxa's GB Mega Man: Dr. Wily's Revenge in 16:56.99
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
All right, you finished it! Nice to see an already optimized run optimized even further. Great job, yes vote! And thanks for thanking the people who posted in the game thread. I'm glad we helped you.
Editor, Skilled player (1936)
Joined: 6/15/2005
Posts: 3239
Are the colors in the encode standard for this game? I thought GB colors are generally monochrome (grayscale).
Active player (303)
Joined: 8/21/2012
Posts: 429
Location: France
Looks like a veeery good run, and I was totally entertained :D Voting YES and congrats for the improvements. Actually, when I was searching for a new TAS to make (some months ago), I thought about giving a shot to this game. It didn't happen in the end, but I remember watching the "old" publication in detail and thinking it would be a serious challenge because it looked really good already. So, again, good job ;)
Editor, Experienced player (607)
Joined: 11/8/2010
Posts: 4012
FractalFusion wrote:
Are the colors in the encode standard for this game? I thought GB colors are generally monochrome (grayscale).
I believe the colors are added by BizHawk to mimic how the game looks when played on the Game Boy Color. By the way, will this be the biggest obsoletion so far? 8 years and nearly 7 months?
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
FractalFusion wrote:
Are the colors in the encode standard for this game? I thought GB colors are generally monochrome (grayscale).
BizHawk has palette files for GB games, presumably to emulate the appearance of GB games in GBC or GBA handhelds. It has palette files for Mega Man/Rockman World (and sequels), which has the colors I used for the encode. Though the main reason I used this palette was just for visibility reasons. The contrast in colors makes it easier to differentiate Mega Man and objects/enemies from the background.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Spikestuff
They/Them
Editor, Expert player, Publisher (2254)
Joined: 10/12/2011
Posts: 6324
Location: The land down under.
Lovely run. Now go an improve THIS. :3
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. These colours are pretty neato, and also these.
WST
She/Her
Active player (442)
Joined: 10/6/2011
Posts: 1690
Location: RU · ID · AM
Good run, good entertainment moves, nice usage of time-saving damage, it’s a yes vote
Spikestuff wrote:
Lovely run. Now go an improve THIS. :3
IMO that looks more like bernka’s or Qwerty’s kind of the game ^^
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2224
Location: Georgia, USA
You've been really prolific in running Mega Man lately, Mothrayas. Great job again! I'm surprised that the improvement was as small as it was, though the cutscene skip was a cool change. It's pretty tough to tell this run apart from the currently published run. I guess the only Mega Man game for GB that's missing now is MM4.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Player (55)
Joined: 11/28/2013
Posts: 118
Very nice optimization, especially in the later stages. I like the dodging from 14:53-15:11.
Projects: Tetris DS Genesis Toys: Let the Toy Wars Begin
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
Why the darn this comes nearly a second shorter after conversion to .lsmv: http://tasvideos.org/userfiles/info/11042360351558760 ? It is not the ending point: Both movies cut out immediately after the final B-button press...
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
Seems to get the job done quickly. I forgot how catchy the music in the final stage is. :)
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Ilari wrote:
Why the darn this comes nearly a second shorter after conversion to .lsmv: http://tasvideos.org/userfiles/info/11042360351558760 ? It is not the ending point: Both movies cut out immediately after the final B-button press...
Seems to be loading time differences. I replaced the BizHawk movie file in the submission with the lsnes file, since that one turns out to be faster. User movie #11047073432876185 - original BizHawk submission for reference's sake
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
For people who don't know, when playing a GB game on a GBA or GBC, you can set the palette (color for backgrounds, color for sprites) via holding a key combination during the boot process. I think that's what BizHawk is simulating.
Editor, Skilled player (1402)
Joined: 3/31/2010
Posts: 2081
Sweet, gonna watch this asap. Will edit my post later. //Very great run, pretty smooth considering how limited the game often feels. Yes vote natch.
Editor, Expert player (2310)
Joined: 5/15/2007
Posts: 3854
Location: Germany
As noted here, jumping has an X speed of 234 whereas walking only has an X speed of 200. You walked in many places instead of jumping.
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
I'm debugging some sound issues, looks like problems in Gambatte core (I already fixed one, but there might be others / I might have introduced a new problem). Specifically, the problem is rather sizable DC components when sound channels are enabled. Constant or slowly varying DC component wouldn't be a problem (just highpass it away), but the fast transitions in DC component creates glitches that aren't easy to edit away. Also, yes, the palettes are changeable. Specifically, background palette, sprite 1 palette and sprite 2 palette can be set individually (to arbitrary RGB colors).
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
MUGG wrote:
As noted here, jumping has an X speed of 234 whereas walking only has an X speed of 200. You walked in many places instead of jumping.
Not sure how you came to these numbers, but they're incorrect. Both walking and jumping have a max X speed of 240. EDIT: I see your lua script posted there uses RAM address 0xD82A, but that's not correct. (I don't know what that value does, and it seems to correlate somewhat with speed, but it definitely isn't speed). The correct X speed address is 0xD826. (Note how the X subpixel value adds up in correspondence to the X speed in memory. It's the same regardless of whether Mega Man is walking or jumping.)
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Synahel
She/Her
Joined: 1/19/2011
Posts: 259
Location: France
Great job, Mothme, another old run bites the dust!
Editor, Expert player (2310)
Joined: 5/15/2007
Posts: 3854
Location: Germany
Mothrayas wrote:
MUGG wrote:
As noted here, jumping has an X speed of 234 whereas walking only has an X speed of 200. You walked in many places instead of jumping.
Not sure how you came to these numbers, but they're incorrect. Both walking and jumping have a max X speed of 240. EDIT: I see your lua script posted there uses RAM address 0xD82A, but that's not correct. (I don't know what that value does, and it seems to correlate somewhat with speed, but it definitely isn't speed). The correct X speed address is 0xD826. (Note how the X subpixel value adds up in correspondence to the X speed in memory. It's the same regardless of whether Mega Man is walking or jumping.)
Hmm weird. I'm going to check later.
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Why did you get hurt at ~3:16?
Noxxa
They/Them
Expert player, Moderator (4131)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
henke37 wrote:
Why did you get hurt at ~3:16?
If you mean by the electricity at 3:12, it's faster to get hit and pass through the electricity than wait for it to disappear.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Joined: 12/11/2010
Posts: 60
Why no palletized version? It looks roughly 2000% better.
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
MrTickles wrote:
Why no palletized version? It looks roughly 2000% better.
Yeah, but what palette(s) to use? The "per-game" one has things like green fire... There is SGB palette for the game, but I haven't dumped it (and thus not checked how it looks). Edit: The SGB default palette for the game seems to be: action bgpalette ffefce de944a ad2921 311952 action sp1palette ffefce de944a ad2921 311952 action sp2palette ffefce de944a ad2921 311952
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2492] GB Mega Man: Dr. Wily's Revenge by Noxxa in 16:56.99