Dr. Mario

Untested

NES · 1990 · Puzzle · Decompilation

Throw coloured pills into a bottle and line up four to wipe out the viruses.

▶ Play with your filesYou supply your own Dr. Mario (Japan, USA) (Rev A) dump. It is read in the browser and never uploaded. The 65,536-byte ROM body must be sha1 59b43881456c0720e9a35e391b11c4b2c55a8f91; an iNES or a NES 2.0 header are both fine.
Controls
Arrow keysmove the pill, Down to drop
X / Zrotate
EnterStart
ShiftSelect
Gamepadd-pad and face buttons

About this build

Dr. Mario (Japan, USA) (Rev A) rebuilt from its 6502 disassembly: the 32 KB program is assembled from source and matches a real cartridge dump byte for byte. The project ships code only — you bring your own ROM, it is read in the browser, and the page works out which of the two supported cartridges you handed it from the SHA-1 of the ROM body.

Built from
The ROM reassembled byte-for-byte by asm6f from the Nostaljipi disassembly, run in the browser on EmulatorJS 4.2.3 with the libretro fceumm core.
Type
Decompilation
Game files
You supply your own Dr. Mario (Japan, USA) (Rev A) dump. It is read in the browser and never uploaded. The 65,536-byte ROM body must be sha1 59b43881456c0720e9a35e391b11c4b2c55a8f91; an iNES or a NES 2.0 header are both fine.
Code licence
See the upstream disassembly; EmulatorJS is GPL-3.0 and is vendored with its licence.
Assets
No game data is distributed. Graphics and audio come from the ROM you supply.
Source
Nostaljipi/dr-mario-disassembly ↗

What has been tested

0 of 65,536 ROM body bytes differ from a real dump. In the browser: boots, frames advance continuously, and from one save state holding Left vs Right moves p1_fallingPillX ($0305) in opposite directions with mode ($0046) = mode_mainLoop_level and flag_demo ($0741) = 0, which an attract demo cannot do. A save state survives a page reload and the restored machine is still in the game. Also boots and draws on the nestopia core, where the RAM oracle does not work.

Last tested 2026-10-05 in Chrome 151 (headless, Linux). Full playthrough: not verified. How games are tested.

Known limitations

Saves

The cartridge has no battery, so there is nothing for the game itself to save. The page keeps an automatic save state in this browser's IndexedDB, keyed by your ROM's SHA-1, and resumes from it next time. Clearing site data removes it.

Play next