This code is outdated, poorly written, and due to be phased out within a year. It is kept here for historical purposes only. A new version is under development.
Active development of a version of FullScreenMario that uses JSON for maps and JS objects for Things is located at https://github.com/Diogenesthecynic/FullScreenMario-JSON. 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.
Due to a legal complaint from Nintendo, this project is no longer directly available via www.fullscreenmario.com. However, you may run or host your own copies of the game on your computer, a cloud IDE, or your own server.
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).
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.
- For example, htdocs/FSM/index.html will translate to http://localhost/FSM/
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).
- Select
Preview > Project Index
. - Select
Preview > New Browser Tab
. - Click
Preview
and then click inside the game area.
Follow the same steps as running on your computer (virtual host).
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).
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 ++player.star . |
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. |
Command | Result |
---|---|
addThing(ThingFunction, xloc, yloc)
or 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 . |
Command | Result |
---|---|
setMap(A,B)
or setMap([A,B])
|
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. |
setMapRandom()
or setMapRandom("Overworld")
|
Starts the corresponding random map immediately, similar to setMap. Named options are (Overworld by default):
|
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.
|
loadEditor()
|
Starts the in-game level editor. |
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 www.fullscreenmario.com, but that site was taken down by Nintendo for copyright infringement.