Nintendo’s Game & Watch can run Doom, barely

Intrepid developers have done the expected and necessary: Doom now runs on Nintendo’s recently released Game & Watch portable. The Game & Watch: Super Mario Bros. was designed to run three games, but successfully porting Doom shows it can handle others if you have a lot of patience (via Hackaday).

This version of Doom is not perfect, of course. In order to get the game to run even at the slower speed shown in the video below, sound had to be disabled and textures had to be simplified to fit the game on the small portable. And getting that far wasn’t easy: programmers stacksmashing and Konrad Beckmann had to trick the Game & Watch to offload its firmware by injecting code into the external storage accessed by the Game & Watch’s tiny microcontroller.

Finding a version of Doom small enough to fit on the Game & Watch’s meager amount of storage was a separate issue. The hackers settled on a package called “Minimal Doom IWAD” that replaces the game’s original textures with simplified versions, but they still had to make further adjustments like disabling sound to work within the Game & Watch’s 1.1 MB of usable storage.

The Game & Watch: Super Mario Bros. is designed to evoke Nintendo’s original Game & Watch handhelds, while running a version of Nintendo’s NES classic, Super Mario Bros., as well as Super Mario Bros. 2 (known in the West as The Lost Levels). (It also runs a Mario-themed version of the Game & Watch game Ball). Doom’s demon-slaying action wasn’t ported to a Nintendo console until the more powerful SNES was released, so showing up on a tiny device designed to run NES games is as unusual as it is impressive.

Doom is an old standby for programmers experimenting with homebrew games. The game has showed up in all sorts of places: from a Samsung refrigerator running xCloud, to a Windows PC built in Minecraft, and even the Touch Bar of a MacBook Pro. Thanks to this work, Doom seems right at home on a Game & Watch, and soon, other homebrew games might be, too.

Source link