Super Mario Bros. X

Super Mario Brothers X (commonly known as "SMBX", as well as "Legacy Engine") is a Mario fan game engine, written by Andrew "Redigit" Spinks in 2009. The game is written on Visual Basic 6 (VB6). Project development was stopped in 2011, and SMBX 1.3 is the last official version.

History
In the year 2009, Andrew 'Redigit' Spinks began to work on the game Super Mario Bros. X. Gradually the game gathered a following among the fans of the Super Mario game series.

It is viewed as one of the all-time best fan games about Mario. It features game elements from classic games such as Super Mario Bros., Super Mario Bros. 2, Super Mario Bros. 3, Super Mario World, The Legend of Zelda, etc. The built-in level editor allows you to not only edit levels alongside an engine to debug them in real-time but also allows the player to create full-fledged episodes with a plot!

Unfortunately, at end of January 2011, Redigit announced that he halted the development of the game and started initial work on the Terraria game project. Later, in April of 2011, Redigit received a call from the lawyers of Nintendo, who demanded the removal of SMBX. After some time, the supermariobrothers.org domain was also taken over by Nintendo. And thus, a remarkable project was killed.

But even so, it is still being played. A lot of "episodes" are being created as of now, and the game is still in demand. Currently, the game overloads the processor to 100% even when the user is not in action.

There were several attempts to revive the project, but they failed until some major projects got success years later.

The main mistake – the game was published under the untwisted brand. And Redigit was making money off SMBX via the distribution of ads in its installer (the fact of using OpenCandy is known), on forums, and the website. I.e. he infringed on the brand. Therefore, Nintendo decided to send Redigit a cease-and-desist, which forced him to remove SMBX from his site, remove all YouTube videos from his channel, and later, transfer the "supermariobrothers.org" domain to Nintendo.

SMBX now
As of now, SMBX is still in demand, and constantly receives new levels, graphics, and even episodes. Because of this high demand, LunaDLL (later LunaLua and Super Mario Bros. X2) has started to be developed.

Source code
For a long time, the source code was never published. However, 10 years later after the last release, On 2'nd of February, 2020, the original source code of SMBX 1.3 has been finally released and published on GitHub with an MIT license.

About the game
Super Mario Brothers X is a community-driven sandbox game where anyone can create their own episodes with an individual plot. Episodes made for this game aren't in any way connected to the official Nintendo series or Mario cannon, but some episodes are an attempt to create remakes of original games or unofficial continuations of official games.

Graphics
Most of the graphics are rips from original Super Mario games or other games for the SNES (or in some cases the NES). Some people create recolors, restyling, or even their own original pixel-art graphics, original characters, sceneries, and a new atmosphere. The game has an 800 x 600 resolution. Most of the graphics are 2x-scaled pixel-arts (2x pixel). In some cases, it is possible to have non-scaled graphics, but mixing them with regular 2px graphics is not recommended, in order to keep the style in a good state.

Music
Super Mario Bros. X uses music from the following Nintendo games:
 * Super Mario Bros. (the All-Stars version for the SNES, 1993)
 * Super Mario World (SNES, 1990-1992)
 * Super Metroid (SNES, 1994)
 * Zelda II: The Adventure of Link (NES, 1987-1988)
 * The Legend of Zelda: A Link to the Past (SNES 1991-1992)
 * Star Fox (SNES, 1993)
 * Super Mario 64 (Nintendo 64, 1996)
 * Super Smash Bros. Brawl (Nintendo Wii, 2008)
 * Super Mario Galaxy (Nintendo Wii, 2007)

Sound Effects
Super Mario Bros. X uses sound effects captured from the following Nintendo games:
 * Super Mario Bros. (the All-Stars)
 * Super Mario World
 * Super Metroid
 * The Legend of Zelda: a Link to the past

The Invasion
The episode got released with the very first version of Super Mario Bros. X by Redigit. The Invasion features Mario and Luigi trekking through many different worlds to defeat Bowser. Along the way, they travel through seven different worlds, a Mario staple at this point. At the end of each world, they either go through a castle to face a boss (which is always a certain number of Boom Boom's or Birdo's) or, alternatively, they go through an “invasion” level, a difficult airship stage, ending once again, with a boss battle.

There is no story introduced in this episode. The Invasion 2 (read below) however improved greatly on many things in it, and this includes the addition of a storyline.

The episode features 54 levels. The episode was included with SMBX by default until SMBX 1.2 got released, where it was replaced by The Invasion 2. The Invasion comes pre-packaged with SMBX 1.1.

Download

The Invasion 2
This is a remake of The Invasion. It was made to include new features from the later versions of Super Mario Bros. X. The remake also features a clear story, something the original lacks. Aside from that, the overall gameplay is the same.

Plot
Bowser has, yet again, invaded the Mushroom Kingdom. But this time, he has the help of villains "from other realities" (i.e., different games). Unlike many other Mario games, however, Bowser has not kidnapped a princess. Instead, Mario (or whoever the player chooses to play as) has to stop his invasion.

Gameplay
The episode contains many new features, gimmicks, and extras. Bowser is still the main antagonist, but this time around he has the help of new villains, such as King Wart, Ludwig von Koopa, False Bowser, Mother Brain, Larry Koopa and Mouser.

Originally released with Super Mario Bros. X 1.2, the episode has constantly been updated in small ways with each new version released. It is the default episode that comes packaged with Super Mario Bros. X, and it is the main story of Super Mario Bros. X itself.

Download

The Princess Cliche
The second episode released alongside Super Mario Bros. X 1.1.0 Beta 1.

Plot
The episode revolves around Princess Peach getting kidnapped by Bowser after baking Mario a cake, which is an obvious reference to Super Mario 64.

The Princess Cliche features 14 stars spread around three worlds. This episode was available on the main page prior to Super Mario Bros. X 1.2's release. Afterward, it was replaced by its sequel, the Princess Cliche 2 (read below). Both are included with SMBX 1.1 (which can be found here).

Download

The Princess Cliche 2
Not so much a sequel to the Princess Cliche as it is a remake. The main premise is the same, but the levels have some minor extra features from the later versions of Super Mario Bros. X. Changes to levels are less prominent as opposed to in Invasion 2, as they have remained the same for the most part.

The main changes, include the use of music from Super Mario RPG, a much tougher final fight, and a slight change to the game's ending.

When released, it replaced the original Princess Cliche on the main page. This episode is included with SMBX 1.1.

Download

The Great Castle Adventure
The third episode that got released, but wasn't made by the game's creator Redigit, but by a level designing team led by one of the forum users, Zephyr.

Gameplay
The episode involves Mario and Luigi wandering through Bowser's castle to gather stars and ultimately destroy Bowser once and for all. The episode features 40 stars spread across approximately 40 levels and ends with a battle against Bowser. The game is included with SMBX 1.1.

Download

Remake
Currently, a remake is in the works.

The New Great Castle Adventure
Made by KrazyKoopa, his brother Zephyr, Chad, and Valtteri. This episode is a spiritual successor of The Great Castle Adventure. It was released in August 2014. It contains 100 stars scattered across Bowser's castle, 35 more than the original episode had.

Download

Announcement forum post

Return to Yoshi's Island
Made by Zephyr, the same man who created the Great Castle Adventure, this episode has the most levels out of any other, with a total count of around 90 levels. The episode has Mario and Luigi venturing through Yoshi's Island to save Princess Peach from Bowser and Wart. This was made to accommodate Super Mario Bros. X version 1.3, but because it was assumed to never be released, the episode was released in an unfinished state, with a few missing bosses. These include the Koopalings, which were supposed to be introduced in the aforementioned version.

Download

The Great Empire
An episode that was made by Knuckles96 in the early years of SMBX. Considered to be one of the best and most popular SMBX episodes of all time[Citation needed].

Download

Super Mario Enigmatic
A creative puzzle-oriented episode, featuring only one-screen levels. Widely considered one of the most challenging Super Mario Bros X episodes[Citation needed]. Super Mario Enigmatic features over 130 small levels, and a plot.

Download

Mario Prime
This SMBX episode takes elements from Metroid and Castlevania games and mixes them together with the Mario universe. You aim to find Shrouded Stars and unlock new areas. The player is able to backtrack to areas when they are stronger and find new ways to advance through them. All the episode's areas are logically connected to each other.

Download

Gameplay
The game engine uses Super Mario Bros. 3-like physics. The main game is accessed by starting up SMBX and pressing the button "Start Game" in the bottom left corner. This opens a loading screen displaying a legal disclaimer and asking the player to show support to Nintendo by purchasing a Wii (or a WiiU in version 1.3.0.1). When the game has finished loading, the start screen is presented with a level being played by AI-controlled characters and a menu with various choices.

Main menu options

 * 1 Player Game - This option allows the user to play alone. When selected, the player can choose from a list of episodes that are installed in the user's "worlds" folder. After the player has selected a character on the next screen, the game will begin.
 * 2 Player Game - This option allows the user and a friend to play together. When selected, the player can choose from a list of episodes that are installed in the user's "worlds" folder. After the user and their partner have selected a character on the next screen, a two-player game will begin.
 * Battle Game - This option is a two-player-only game mode, where the user and their friend can play together and battle on a list of battle levels located in their battle folder. After the user and their partner have selected a character, on the next screen, a battle will begin. There is no online function for this option.
 * Options - This option allows the manipulation of player controls, full screen, and allows the user to view the credits that play at the end of an episode. Player controls carry over to the level editor when testing levels as well.
 * Exit - This option closes the game.

Game Engine
SMBX uses its own game engine written in the Visual Basic 6 language. SMBX is usually used as an engine for Mario-like games such as fan games about Mario or even independent game series like the A2XT Series by Talkhaus which includes the following games: ASMBXT, A2MBXT. Those games don't have much in common with the Mario series and most of the music and sounds are replaced by original content.

The whole in-game logic and NPC AI algorithms are hardcoded and they are native part of the engine. The original engine doesn't provide any kind of scripting except of the simple automation system called "events". The graphics customisation was very limited and requires level/episode maker to follow the strict standard to get their additions work correctly in the game: engine doesn't allow to append new in-game elements, and level makers can only replace any of existing objects according to their behaviour and mechanics that fits into given goal.

Graphics
It uses the GDI API to render graphics. As there are very limited abilities of drawing objects with a transparency, the Bitmask algorithm had been used: all graphics were saved as GIF files and for every object there is two special variants of the pictures: the first one is a "front" picture which is a normal picture that has fully black background, and the "mask" picture which repeats the shape of the front picture by a black colour and fills the background by a whilte colour.

Sound
To play sound and music, the game used the Microsoft MCI interface as the simlpest way to add the audio support. It allows playing of MP3, WMA, and WAV files only, and very limitely allows playing of MIDI files. Additionally, this interface depends on the system-wide installed custom codecs, so, users were required to install various codec packs like K-Lite or CCCP (Combined Community Codec Pack, don't confuse with USSR) to get the proper work of the audio in the game.

Mods and unofficial implementations
Because the development of SMBX was stopped without opening the source code, nobody was able to continue the official line of game engine development. Therefore in the Talkhaus Team, a particular hacking extension (LunaDLL) was developed between 2013 and 2014 years, which provides the ability to use a built-in SMBX API for script creation.

Later Wohlstand started his research campaign and created SMBX64 Standard which specifies technical metrics, file I/O interface, internal limits, and some API features. The main purpose of this research work and of the SMBX64 Standard is the detail compatibility layer to provide the ability to read, write or modify SMBX Specific internal data and external content. After research had been finished, Wohlstand began with the development of Moondust Editor which is the first part of the Moondust Project - the game engine and development kit for it, inspired by the SMBX game and was developed with an initial goal to create the major alternative to the SMBX engine.

In the year 2015, Chinese developer 5438A38A released his own implementation of the SMBX Engine, initially known as "SMBX 1.4" and later it got named as "SMBX-38A" to explicitly explain that it's a totally different implementation of the SMBX engine and it's not a "new version" of the same SMBX engine.

On the end of 2015, the SMBX2 project has been presented to the community: it's a major extension mod over original SMBX engine made with a combination of LunaLua extension, Moondust Devkit, and a big collection of lua-coded modules that implementes the rest of new in-game things.

Since the game's source codes were opened on 2'nd of February, 2020, the community got been an ability to develop the original version directly. The developers of the SMBX2 and SMBX-38A projects have stated that the source codes are useless to them, except for the ability to clarify various aspects of the original game from the original source code. At the same time, Wohlstand decided to use the original source code for personal experimentation, and he creted a fork called "smbx-experiments" where he implemented some new features and improved stability. A month later, Wohlstand presents to the community a new implementation of the SMBX engine, completely rewritten in C++ and preserving the behavior of the original as accurately as possible. The new project was named TheXTech.

Internal Editor
SMBX has an internal level and world map editor which gives you the ability to create your own levels and episodes.

The editor has a single-document interface: You have one sub-window which has a viewport where you can see your level or world map. All toolboxes are available at the bottom of the editor main window.

Level Editor
The level editor starts by default when you launch SMBX in the editor mode.

Each level has 21 slots for your sections. You can switch between sections if you open the "Level Settings" toolbox. In them, you can also resize the section (you can set position for each boundary of the current section (top, bottom, left, right)), place a player start point. Set up the music and the background of the section, set up the mode of the section (connect sides of the section, enable globally 'underwater mode', enable 'off-screen exit', disable able walk to left). To scroll on the map use the arrow keys and you can scroll fast by using the Shift key.

World Editor
The world editor lets you create your own world maps and allows you to change the episode's properties. To switch to the 'world map editor', open the "Mode" menu and select the "World editor" menu item.

Debugger


Debugger in SMBX 1.3/1.3.0.1. allows you to:


 * See how many Blocks, NPCs, BGOs, and Warps are placed in a level
 * See their limits (some of them aren't correct, though)
 * See your current mouse position/coordinates on the level map
 * Swap blocks by typing their IDs
 * See Framerate speed
 * See how many elements are placed in the level, like power-ups, items, etc.

The "Blocks Sorted" button in the Debugger box of SMBX can be used if you want to make mess up NPC collisions so that they fall through blocks. The button will be activated when you place some blocks in the level.

"Block sorting" means the internal sorting of the list which has all placed blocks in the current level. All blocks should be sorted with X and Y coordinates. SMBX is using this internal collision detection algorithm with NPCs, which are trying to find the nearest block to check collisions with it. If the block array won't be sorted, NPCs will fall down or walk through some blocks. But the player will collide with those blocks, so he won't fall through them.

If you want to make this effect in your level, follow these steps:

1) Make a level, place blocks in the level, place some other blocks far away from the blocks you already placed (for example in Section 2) in the level, save and play-test the level.

2) After play-testing, open the level file in Notepad, and change the block's positions (numbers).

3) When you're done, open the level again and test the level. SMBX will ask you if you want to save the level, when it will do that, always press No or else your notepad changes will be lost.

Note: If you will place some block in the level while play-testing the level, you will be able to press that "Blocks Sorted" button in the Debugger box, which will return things back to normal if pressed.

There is no Debugger box for World Map mode, maybe it was planned to appear in future updates of SMBX. However, in World Map mode you can see your current mouse position below, which is useful to make World Map warps or warps between level and world map.

SMBX 1.4 and the future of SMBX
SMBX 1.4 - was most known for being a fake around YouTube. It would be the next version right after 1.3, but because SMBX development was stopped, nobody was able to continue the original project and thus resulting in there not being a "version 1.4". However, there are various projects to take SMBX's foundation and continue the progress resulted in different branches of the game. The source code of the game was open only since February 2, 2020, after almost 10 years since the development of the game was stopped.


 * Super Mario Bros: Remastered (also known as NSMBX) - Was one of the first attempts to continue SMBX after Redigit canceled it, developed by Marco Benaccio. Unfortunately, Project has been canceled in January of 2012.


 * VSMBX - a project by AeroMatter (aka GhostHawk) coded in VisualBasic.NET. The editor is similar to the original editor but is in fact not compatible with SMBX (it can't open SMBX's levels). Since 4 August 2016, AeroMatter announced discontinuing of the project.


 * Moondust Project or (Formerly PGE Project) - is a project of the alternate implementation of an SMBX-like game engine that is compatible with it. You can play, create and edit levels or episodes which were made in SMBX as-is without porting of stuff. Moondust uses a configuration package system to offer you the ability to use independent itemsets to be able to create non-SMBX games from scratch. SMBX64 - the technical standard which defines the compatibility layer with SMBX. To have working SMBX levels and episodes without glitches and content misses, you must use SMBX64-Standardized configuration packages for Moondust.


 * SMBX-38A - is a Mario fan game engine, written by 5438A38A as an unofficial successor to the original Super Mario Bros. X by Redigit, developed from the ground up as a clone of SMBX with adding of several new features into it. Before recent times it was known as a fake until Kevsoft's and Wohlstand's attempts to research it.


 * SMBX2 - is a big project founded by Horikawa Otane in December 2015 with basing on LunaLua library and implementing a wide set of lua scripts are implementing new power-ups, NPC, blocks, and a lot of new gameplay features and bugfixes. Has a new launcher and uses the Moonudst DevKit for its power level and world map Editor taken from the Moondust Project toolkit.


 * TheXTech - a cross-platform port of SMBX Engine written in C++, made from original SMBX' VB6 source code by Wohlstand with two purposes: get a better research model needed for PGE Engine; providing an alternative and fully-compatible with SMBX game engine to play all old episodes accurate with no gameplay differences.


 * Super Mario ReInvent - (Originaly called as NSMBX) developed by Core. Since the original NSMBX was canceled, Core revived the project using TheXTech source code adding new features, later renamed into Super Mario ReInvent (SMR).

Known bugs

 * If you use a decimal value in the npc-*.txt files, on some computers (from a country where decimals standard uses comma [2,5 instead of 2.5]) SMBX will crash with the error "Runtime error 13: Type Mismatch".
 * Using empty strings with space characters will cause SMBX to crash.
 * If you customize scenery with ID from 33 to 65, SMBX will crash if you try to save the world map or switch to Level Editor with Runtime Error 340.
 * Peach's sprite has the wrong GFX offset settings of vine-climbing frames: Hitbox aligned to the left-top corner of GFX.
 * When you place vines inside the SMBX editor, more vines will be placed under the original one due to the SMBX editor not checking if there already is a vine.
 * Using quotes '"' in the string values will damage level files (the next attempt to load the same file will cause SMBX to crash with Runtime Error 6). But you're able to fix them in a text editor with the manual removal of junk quotes from fields where quote characters are used.
 * Debugger box has wrong limit counters (The de-facto limit of blocks is 16384 instead of 20000 because of internal limitation for the array index value in Visual Basic 6).
 * Blocks with an NPC inside will move to the right with 0.001px offset when you hit it.
 * Lava Lift (Skull raft) will not stop correctly when it impacts a wall. As result, it is squeezed like an accordion and the Conveyor Belt.
 * Pokey the Cactus has a bug with his segments: When it walks on slopes, he will self-collapse.
 * Spike Top can make invisible blocks visible when he tries to walk on its bottom. When it walks over: It walks over them like on a pyramid.
 * When you try to grab any item while you're duck on the diggable sand, the character will be frozen with digging animation
 * When the character standing in the Moving Layer, Climb with the Climbable BGOs will auto-move by Moving Layer's Speed.
 * When you try to open too many levels in the Level Editor with a slow computer, SMBX will crash with "Runtime Error '-2137024822 (8007000e)': Out of Memory".
 * Climbable BGOs on the invisible layer are still climbable!
 * If the player warped to another level and used a pipe exit other than section 1, the player will immediately die!
 * Sometimes, Bill Blaster (npc-21) can be frozen by iceball.
 * An attempt of horizontal layer move with any blocks will cause a huge performance issue on slow machines (so-called DrPepper Problem)
 * The game randomly lags and speed-up if frameskip was disabled.
 * Plays shell-hit sound if no turn back and placed Piranha Plant and goes offscreen.
 * Enter locked warp (either Star or Key) without any BGOs in a level will cause SMBX Crash!
 * NPC can block to the bottom of the invisible block (e.g. Jumping Koopa)!
 * Platforms won't work if it's placed under diagonal lines.
 * Player doesn't move down correctly when standing on the downward moving conveyor layer.
 * Player moves rapidly in the opposite direction when standing on the slippery horizontal moving block layer.
 * Player won't able to enter horizontal pipe warp by sometimes when standing on the steep slope.
 * Runtime Error 11 occurs when the player enters a pipe warp in the position of Fire Piranha Plants (npc-245).
 * 8th frame of POW Block (npc-241) doesn't shown without using NPC codes.

Gimmicks based on usage of bugs

 * If you spin jump into a Peach Block, you spin-jump as Peach!
 * Grab an item you are standing on, then spin jump to spin-grab.
 * Hold down when spin jumping to perform a Spin-Drill.
 * Hammer-suit/Bomb-suit are immune to fire.
 * Duck slide into a one-block hole, turn around, and un-duck.
 * From (5), press down and alt. Run (as a tanooki statue) to go up.
 * Grabbing an item (from reserve) while performing glitch (5) will push you down.
 * If you jump at the right angle and un-duck, you can push yourself through a 1-block wall made with upside-down slopes.
 * If you go into a door and jump simultaneously, you can jump out of the other door.
 * If small, and you spin-jump with a spring, if you press up, let go to bounce higher.
 * Sometimes, when you spin-jump, if timed right, you can jump again.
 * With Peach, if you hover, if timed right, you can double or triple hover/jump.
 * If you have a fairy with Link, and you hit a spring with a fairy going down when you turn into Link, you will fly a little higher as if the spring kicks in.
 * If you hold up and use a springboard to go through a pipe, you can continue to spring through the pipe warp.
 * Ice that you make can ride the water.
 * Rainbow shells ride water only when you ride them.
 * If riding a Shy Guy, or other NPC, if you face a wall and jump, you gain no height, but if you face away from the wall, you fly through the wall. (Fix the first half)
 * If you stop time, you can climb a cliff with a Yoshi with only the alt. jump key.
 * With Peach, if you have a boot, you can time it so you can alt. Jump as soon as you touch it to get more height or more points from enemies or lives!
 * With Link, if you duck and stab an advanced powerup (either a Tanooki suite or Hammer Suit) while having only 1 heart at a time, you will clip into the ground.