
About
Super Mario Bros. is a 1985 NES platform game developed and published by Nintendo, directed by Shigeru Miyamoto, in which Mario (or Luigi in multiplayer) travels through the Mushroom Kingdom to rescue Princess Toadstool from King Koopa. SuperMarioBros-C translates the original Super Mario Bros. NES disassembly (by doppelganger) into C++ using an automated codegen tool, running via an emulation layer for the NES CPU, PPU (video), APU (audio), and controller, built on SDL2. It requires an unmodified "Super Mario Bros. (JU) (PRG0)" ROM file at runtime, since the game's CHR graphics data is pulled from that ROM rather than reimplemented.
How it differs from the original
As a PC build it adds configurable options not present on the original NES hardware, such as adjustable audio sample rate, frame rate, video scale, and toggleable scanline rendering, set via an INI-format config file.
Getting started
Build with CMake (requires a C++11 compiler, Boost, SDL2, Flex, and Bison) to produce the "smbc" executable, then place an unmodified "Super Mario Bros. (JU) (PRG0)" NES ROM file in the working directory, or point to it via the smbc.conf config file, before running.