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

Submission #6123: poco_cpp's NES Dr. Mario "all levels" in 06:44.04

Console: Nintendo Entertainment System
Game name: Dr. Mario
Game version: JPN/USA, PRG0
ROM filename: Dr. Mario (Japan, USA).nes
Branch: all levels
Emulator: BizHawk-2.3
Movie length: 06:44.04
FrameCount: 24282
Re-record count: 5643
Author's real name: H.K.
Author's nickname: poco_cpp
Submitter: poco_cpp
Submitted at: 2018-10-08 08:51:32
Text last edited at: 2018-11-10 19:46:25
Text last edited by: feos
Download: Download (10856 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

Game objectives

  • Emulator used: BizHawk-2.3
  • Aims for fastest clear LV00-LV20.
  • Manipulates Luck
  • Uses a Reset Sequence
  • Uses Left+Right
  • Uses Player 2's controller
  • Abuses Programming Errors

This movie

For those who do not know about this game

Dr. Mario is a simple puzzle game.
Dr. Mario periodically throws Megavitamins into the bottle.
Afterwards, the player can move and land them on Viruses, which spawn throughout the bottle.
By connecting a line of three or more halves of Megavitamins to a virus of the corresponding color, the Virus disappears.
Removing all viruses on the screen advances the player to the next level.
Completing level 20 is the ending.

Basic technique

  • There is no time difference by SPEED(MED/HI). LOW is slow because Mario's throwing action is long.
  • The Down key reacts only even frames.
  • The Left / Right key reacts in both even and odd frames.
  • If you press A, B and Left key at the same time, you will move to left two times.(However, it is limited to timing when it can rotate)

Layout and pill sequence

Layout and pill sequence is determined when level is selected.
It does not change after it is decided once.
This is determined by the number of frames since the start of the game.
This record resets the frame by soft reset on the way and selects the optimum placement.
(Soft reset maintains level information,but do not maintain number of frames. In this way, you can select an arrangement that can not be selected normally.)

Remove glitch

"Remove glitch" occurs when many viruses are deleted in one chain.
After "Remove glitch", it sometimes freeze.
Freeze may be canceled by pressing the controller button of player 2.
Regarding the necessary buttons, the internal numerical value of the cross key and the column number are likely to be related, but details are unknown.

When "Remove glitch" occurs, the behavior changes according to the direction in which the last virus removed.
If it removes vertically, all that one column will remove.
If it removes laterally, all removes from lower than that line.
After the laterally, it is now possible to delete all viruses by operating the 2p controller!

The root cause of "Remove glitch" is the occurrence of NMI due to high load.
The processing with the highest load is score addition.
The following is the score table.

virus Score
01 +100
02 +200
03 +400
04 +800
05 +1600
06 +3200
07 +3200
08 +3200
09 +3200
10 +3200
11 +3200
12 +1000
13 +300
14 +25600
15 +100
16 +200
17 +400
18 +25600
The score has increased at the 14th virus.
This is the reason why "Remove glitch" occurs in the 14th virus.
Besides erasing the 14th virus, even if you erase the 3rd ~ 10th virus simultaneously, "Remove glitch" will occur.

Please see below for details.(However, it is Japanese.)

Google Translate's English rendering page.

ThunderAxe31: Judging.

ThunderAxe31: This TAS is the result of a huge amount of researches done by the author, as well as a fierce competition between multiple players. It pushes the game close to its limits and beats all known records, thanks to optimized usage of the "Remove glitch" and RNG manipulation.

The audience reception was widely positive, thanks to the movie's unprecedented fast pace and mind-blowing glitching. I agree that this is indeed an entertaining example of superhuman gameplay.

In a previous judgement I noted how there is no gameplay difference between choosing MED and HI speed for TASing, and thus both options are acceptable. However, some people prefer HI speed, due to the fact that it results in displaying the best ending cutscene, which gives a better sense of completion to the watcher and thus making it a better choice for entertaining purposes. On the other hand, from the technical point of view choosing HI speed results in a minimal time loss and it's trivial to implement and remove, so it doesn't count as an actual gameplay loss; if a future submission aims to obsolete this movie, it should not consist in just a removal of the speed selection, but it should feature actual gameplay improvements. For the same reason, future submissions that use a more accurate core (NESHawk) would not be compared in relation of the time lost due to different loading times.

The criteria for recognizing the full-completion conditions varies from game to game, but we can summarize that there needs to be "optional accomplishments that can be objectively measured and maximized". In the game used for this submission, the player is able to choose the starting level to play, and every time a level is beaten, the game proceeds with presenting the subsequent level for playing. So the game does objectively recognize the beating of each level as a form of progression, regardless of which is the initial level choosen by the player. The game does also remember which was the last level beaten even after soft resets, so the completion point of each level is verifiable even when the player makes use of soft resets after beating a level, like in this submitted movie; in fact it's possible to notice in this movie that after beating each level and doing soft reset, the main menu of the game has the level cursor already pointing to the subsequent level, which wouldn't happen if the player used soft reset before beating a level and closing the relative "stage clear" message.
For the purpose of full-completion, this movie starts from level 1 and beats all levels up to 20, which causes the game to display the best ending cutscene. It must be noted that after this cutscene, if not soft resetting the console, the game proceeds with presenting level 21, and so on until level 24, which will then repeat endlessly; however, it must be noted that any level beyond 20 is actually featuring the very same settings, which doesn't introduce any kind of new gameplay content and thus would be completely redundant to include in a movie.

This movie features usage of soft resets for RNG manipulation purposes, which causes this game's RNG to start over. This means that the inputs for each level can be cut off and played as a separate movie, without incurring in any sync issue. The player already provided a movie file that beats level 20 HI speed with the same inputs used in the submitted movie during level 20, and I was also able to do the same with other levels. This means that the submitted movie does include the inputs of a fastest-completion run in it; in other words, by fulfilling the full-completion goal, it does also fulfil the fastest-completion goal. At this point there is no reason to have an active branch for fastest-completion anymore, as an updated movie would result completely redundant. This superseeding mechanic was already explained by feos in this judgement note, which also mentioned two precedents.

Everything I said above translates in the following: this submission is accepted for Moons, as full-completion branch, and it obsoletes the current fastest-completion publication.

Note for the publisher: we still need to discuss a possible label change for this movie.

feos: And with that, Pub!

Similar submissions (by title and categories where applicable):