Skip to content
An HTML5 remake of the original Super Mario Brothers - expanded for wide screens.
Branch: master
Clone or download
Pull request Compare This branch is 17 commits behind JoshuaKGoldberg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Fonts FontSquirrel for fonts Oct 10, 2013
Maps Bowser now throws hammers in 6-4, 7-4, 8-4 Dec 8, 2013
Theme Simple wrapper UI Nov 7, 2013
src Fix for AudioPlayr patch Dec 22, 2013
.gitignore Updated Readme to mention FullScreenMario-JSON Feb 2, 2014
data.js Created AudioHandlr.js Nov 27, 2013
default.css Added options, fixed setspeed & maxLulz Nov 15, 2013
library.js Created AudioHandlr.js Nov 27, 2013
load.js Created AudioHandlr.js Nov 27, 2013
maps.js Bowser now throws hammers in 6-4, 7-4, 8-4 Dec 8, 2013
mario.css FontSquirrel for fonts Oct 10, 2013
mario.html Created QuadsKeepr Dec 2, 2013
quadrants.js Fixed 'memory leak' in quadrants Nov 29, 2013
toned.js Further proliferate fix Jan 14, 2014
ui.js changed window.mario to window.player Nov 15, 2013
upkeep.js Created QuadsKeepr Dec 2, 2013


Active development of a version of FullScreenMario that uses JSON for maps and JS objects for Things is located at Not all functionality has been copied over to that project, and many maps there are missing key features. Once it has completely made up the features from the main branch, it will be merged back into the project here.

An HTML5 remake of the original Super Mario Brothers - expanded for modern browsing.

How to Play

Due to a legal complaint from Nintendo, this project is no longer directly available via However, you may run or host your own copies of the game on your computer, a cloud IDE, or your own server.

Your Computer (Local)

You may run the game through the helper UI via index.html, or directly via mario.html. This will run an entirely local copy of the game (note that via index.html, for security reasons, Chrome may not allow you to access the game through the Javascript console).

Your Computer (Virtual Host)

Download and install the *AMP stack suitable for your operating system. Place Full Screen Mario's files in a directory somewhere under htdocs, and access it via localhost in your browser.

Because your browser will allow AJAX requests via a server, delete the "This is an offline copy..." log message from maps.js, along with all subsequent functions (they will be loaded over-eagerly by the game).

Cloud IDE


  • Select Preview > Project Index.
  • Select Preview > New Browser Tab.
  • Click Preview and then click inside the game area.

Your Server

Follow the same steps as running on your computer (virtual host).

Cheat Codes

Here's a quick set of cheat codes you can use during the game. If you're using this through the helper UI, you'll have to reference everything as a member of 'game' (which is a link to the frame containing FSM).

Game Powerups

Command Result
playerShroom(player) The equivalent of the player touching a Mushroom or FireFlower item.
playerStar(player) The equivalent of the player touching a Star item. Note that if you want the player to be invincible for the rest of the current map, use
scrollPlayer(X) Scrolls the window horizontally by X, keeping the player in the same spot relative to the screen.
scrollTime(T) Floats the player through the rest of the level (beware, this is best used on the Random worlds!).
fastforward(T) Sets the game speed to 1+T. T=1 results in double the speed, and T=0 is normal speed.

Adding Things

Command Result
addThing(ThingFunction, xloc, yloc)
addThing(new Thing(ThingFunction, arg1, arg2), xloc, yloc)
Creates a new instance of a Thing, such as Goomba or Koopa, at the specified location. Thing functions are located as separate in things.js; in the future they will be stored as JSON objects.
killNormal(MyThing) Kills a specified Thing. You may find them listed under window.characters, window.solids, and window.scenery.

Map Shifting

Command Result
Starts the World A-B map immediately. If it doesn't exist (such as when maps aren't loaded via AJAX yet), it will log a complaint gracefully.
Starts the corresponding random map immediately, similar to setMap. Named options are (Overworld by default):
  • Overworld
  • Underworld
  • Underwater
  • Sky
  • Castle
shiftToLocation(N) Shifts to the Nth location in the current map. For example, setMap(1,1); shiftToLocation(2); brings the user to the Underworld section of World 1-1. Note that maps are stored under Maps/WorldAB.js as function bodies.

Level Editor

loadEditor() Starts the in-game level editor.

Developers & Legal

This is released under the Attribution Non-Commercial Share-Alike license. Full Screen Mario is meant to be both a proof of concept and an entertaining pasttime, not a source of income.

The whole project was originally hosted under, but that site was taken down by Nintendo for copyright infringement.

You can’t perform that action at this time.