/FullScreenMario

An HTML5 remake of the original Super Mario Brothers - expanded for wide screens.

Primary LanguageJavaScript

FullScreenMario

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 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.

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

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 ++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.

Adding Things

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.

Map Shifting

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):
  • 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 www.fullscreenmario.com, but that site was taken down by Nintendo for copyright infringement.