Dr. Mario (NES)
Dr. Mario |
---|
Developer: Nintendo R&D1 This game has unused code. This game has a prototype article This game has a notes page This game has a bugs page This game has a Data Crystal page |
To do: There appears to be some evidence that the extended string in Fever from the Game Boy version is in the game, but is unused. |
Dr. Mario is a puzzle game featuring Mario, who throws colored pills into a bottle to match with like-colored viruses and destroy them. It's also been remade several times since.
Contents
Sub-Pages
Prototype Info |
Notes |
Bugs |
Unused Graphics
These sprites were intended to appear in the cutscenes shown between levels.
Either a soccer ball or a meteor. Nobody knows.
A snowman in boots? Whatever it is, it does have a proper tilemap and behavior, and its placement in the sprite list suggests it was meant to appear in the Level 20 HIGH cutscene before the final UFO scene was implemented.
Some strange colorful lines, possibly an early virus-deletion animation. The final game uses a much simpler starburst graphic. This sprite appears in later prototypes of the arcade version.
What looks to be half of a large pill. This was added sometime after the PlayChoice-10 Virus prototype.
Unused Gameplay Behavior
The game has two leftovers from its earliest days of development, when it was called Virus.
- Normally, Megavitamin halves fall down after the other halves are matched. In the first two builds of Virus, the options menu allowed players to turn this off, letting them stay in mid-air. In any version of the final, changing RAM address $724 to a non-zero value will cause the Megavitamins to stay in mid-air.
- Normally, 2-Player mode continues until a player wins three times. In the first two builds of Virus, this number could be set in the options menu. Similar to the above, the number of games needed to win can be changed at RAM address $725.
Famicom Disk System Remnants
The game appears to have been originally developed for the Famicom Disk System, as many FDS BIOS routines and their associated variables are present in the final game.
Unused Alternate Controller Polling Routines
(ROM addresses are for the Rev 1 release but these are present in all final releases.)
The game contains unused alternate controller polling routines which originate from the FDS BIOS.
- $B7E1 contains the polling routine used in the final game. It polls the controllers twice (including the Famicom's expansion port) and bitwise ANDs the results to work around DMC input corruption.
- $B812 contains a routine which rereads the standard controllers in a loop until two polls match, which is a more typical workaround.
- $B828 contains a routine which is identical to the previous one but combines inputs from the expansion port.
- $B844 contains a polling routine which only reads the controllers once but treats expansion port inputs separately from standard controllers.
See the notes page for more details.
Disabled Demo Recording Mode
To do: Demonstrate the recording mode on an FDS port, and include a video. |
The game checks the memory address $0741 against a constant value of FF to determine if the demo inputs should be recorded instead of replayed. This address is normally set to 00, disabling this feature. Even if the check passes, inputs cannot be recorded in the final game as the game attempts to write these to ROM on the cartridge. Since the FDS loads code from disks into PRG-RAM instead, the recording mode would have been functional (and therefore used) during development.
Anti-Piracy
The game features a simple anti-piracy check that will intentionally crash the game if the title screen is altered. On reset, the game performs an 8-bit checksum of the area of ROM containing the title screen tilemap data ($B900-$BDFF). If the check passes, RAM address $740 is set to 00 and the game runs normally. However, if it fails, $740 is set to FF instead. This address is checked whenever a pill lands; if it's set to FF, the game pulls whatever value is stored at RAM address $53, pushes it to the stack three times, and performs an RTS. This causes the CPU to jump somewhere in RAM, and since there's no valid program code there, the game soon crashes.
Interestingly, a very similar 8-bit checksum routine (and method of crashing) appears in Final Fantasy. Perhaps the programmers drew inspiration from NASIR?
- Pages missing developer references
- Games developed by Nintendo R&D1
- Pages missing publisher references
- Games published by Nintendo
- NES games
- Arcade games
- Pages missing date references
- Games released in 1990
- Games released in July
- Games released on July 27
- Games released in October
- Games with unused code
- Games with unused graphics
- Games with debugging functions
- Games with anti-piracy methods
- Pages with a Data Crystal link
- To do
- Mario series
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To do
Games > Games by content > Games with anti-piracy methods
Games > Games by content > Games with debugging functions
Games > Games by content > Games with unused code
Games > Games by content > Games with unused graphics
Games > Games by content > Pages with a Data Crystal link
Games > Games by developer > Games developed by Nintendo > Games developed by Nintendo EPD > Games developed by Nintendo SPD > Games developed by Nintendo R&D1
Games > Games by platform
Games > Games by platform > Arcade games
Games > Games by publisher > Games published by Nintendo
Games > Games by release date > Games released in 1990
Games > Games by release date > Games released in July
Games > Games by release date > Games released in July > Games released on July 27
Games > Games by release date > Games released in October
Games > Games by series > Mario series
The Cutting Room Floor > Unimportant Awards > NES games