Skip to content

Compare with other SMBX branches

Vitaly Novichkov edited this page Nov 7, 2021 · 10 revisions

THIS PAGE IS A WIP DRAFT


TheXTech - is the independent branch of the SMBX Engine with its own unique features, own advantages, and own disadvantages. This page should explain all differences between TheXTech compared to other SMBX branches.

Super Mario Bros. X 1.3

The first implementation of the SMBX engine. It was made with Visual Basic 6. TheXTech is the directive port made from it with rewriting all code into C++ using cross-platform libraries and methods. All new updates made on TheXTech were are extending the functionality and stabilizing. So, TheXTech is a direct continuation of the SMBX 1.3 branch with its own path. It still has a lot in common with SMBX 1.3, it still has a lot of bugs and a very accurate physics workflow that makes this engine being a full drop-in replacement of SMBX 1.3 to play old episodes with better convenience, and have the ability to run the game on any other platforms than Windows and x86, including mobile platforms and single-board computers.

Advantages of TheXTech over SMBX 1.3

  • MixerX audio library support adds the support for a big range of sound and music formats, and the number of extra abilities related to sound and music.
  • Cross-platform support: Windows, macOS, Linux-based systems, Haiku, Emscripten, Android.
  • Support for many architectures: x86_64, x86, ARM-compatible, PowerPC-compatible, WebAssembly, etc.
  • Lesser RAM usage (Average 70...120 MB usage compared to the 300...600 MB of SMBX 1.3).
  • Lesser processor load (4...40% compared to 100% of SMBX 1.3).
  • Much faster loading time (on fast computers it goes almost instant).
  • Native support for PNG graphics.
  • Support for LVLX and WLDX formats of the Moondust Project.
  • Gamesaves will appear at the isolated directory (settings/gamesaves/<name of episode directory>/<name of world map>.savx) to don't fill the episode directory with any junk content. Old game saves at episode directory will still be read by the game in order to allow the player to resume their game after the update from SMBX 1.3 to TheXTech.
  • Better support for game controllers include the ability to plug/unplug controllers while the game runs.
  • Unicode file paths supported: you are no longer limited with ASCII-only file paths, you can freely name your music files and levels as you want in a condition you save your levels and LVLX and world maps as WLDX.
  • Has the ability to copy and delete game saves from the game menu.
  • Has the doze of new functions been added:
    • Added built-in GIF recorder activated by F11 (F10 on macOS) key.
    • Added an ability to use up to 201 sections.
    • Added the multi-points support (You are allowed to use multiple checkpoints at the same level: all taken checkpoints will disappear, the player will appear at last taken).
    • Added the support for world map custom directories (You are no longer need to fill your episode directory with world map resources, you can put them at the world map file's namesake directory instead).
    • Added the native support for episode-wide and level-wide music.ini to override default music with custom.
    • Added the native support for episode-wide and level-wide sounds.ini to override default SFX with custom.
    • Added the section vertical wrap support.
    • Added the two-way warps support.
    • Added the ability to customize the "You need X stars to enter" message at warps.
    • Added the on-enter event at warps.
    • Added the ability to disable the inter-level scene (that shows player's portrait and lives left).
    • Added the ability to disable stars count printing per warp.
    • Added the cannon pipes.
    • Added portal warps (instant warps that save the X and Y speed non-zeroed).
    • Added the ability to use portal warps as inter-level warps (can be used as exit as well as entrance).
    • Added the interprocess integration with Moondust Editor include the magic hand support for real-time editing (placing items selected at the Editor into the game directly, and taking items from the game, and modifying their properties at the editor).
    • Added an own timeout sound-92 for the P-Switch timer (will be played with 3 seconds before the end).
    • Added an option to make use of the Alt-Run key for Yoshi's Ground-Pound ([gameplay] section and 'ground-pound-by-alt-run' boolean field).
    • Message box line breaking algorithm has been improved, added support for new-line characters.
    • Added the support for playable character custom INI calibrations (made using the Moondust Player Calibrator).
    • Added an ability to globally override NPC settings by placing of npc-*.txt file into graphics/npc directly of assets.
    • Added the "gameinfo.ini" to give support for the partial customization of internals (window/game title, character names in menu, credits, etc.) and control the behavior of intro and outro scenes.
    • Added the speed-runner mode that enables the special built-in timer that counts the time spent on the walkthrough and sets the compatibility mode (to ensure all gameplay and physics improvements got been disabled) which is required for speed-running of episodes developed for original SMBX 1.3.
    • Added a better autoscrolling method that works from the section settings per each section.
    • Added the "Reset to default" menu item to reset controls.
    • Added option to show a number of stars available/obtained in level on the world map.
    • Added the Yoshi mode support for specified songs at the music.ini: mute selected track number without Yoshi, enable it back when Yoshi is presented.
    • Added mask fallback support for custom graphics mask compatibility for old episodes.
  • Many old bugs of SMBX 1.3 got been fixed to provide more convenient and less annoying gameplay. The ability to re-enable certain bugs of SMBX 1.3 back was kept in order to correctly play certain levels and episodes expected these bugs being presented.
    • Known crash bugs got been fixed:
      • "mushroom lava soup" crash.
      • Venus Firetrap with a pipe exit division by zero.
      • The attempt of NPC to go far off the screen and its attempts to find any nearest blocks
      • When attempting to enter the locked warp or take the star with star-locked warp the game will crash if a level has no BGO at all.
      • etc.
    • Fixed the wrong speed-adding while climbing fence background objects.
    • Fixed the unnecessary ability to climb fences at invisible layers.
    • Resolved the problem of the moving layer after the level got restarted after the player's failure at it.
    • Fixed the True Bowser's behavior at old levels (such as "The Invasion 1" final level).
    • Fixed the incorrect BGO-65 appearance while playing old levels (made for SMBX 1.0.x).
    • Fixed the wrong framerate while processing the keyhole exit.
    • Fixed the inability of Peach to escape the running shell surf.
    • Stabilized the work of the Skull Raft.
    • Fixed the "conveyor bug": resolving the problem when a player attempts to jump while standing on NPC (any, including conveyor belt) that pushes them into the wall, causing them to go through the wall.
    • Fixed the problem that causes NPC to get clipped into the floor while standing on a block of a down-moving layer.
    • Fixed the problem that causes players to get clipped into the floor while standing on a block of a down-moving layer.
    • Fixed an unwanted player bounce by a filter block after NPC stomp.
    • Fixed the case when Pokey getting collapsed during walking on slopes.
    • Fixed an inability to autostart events when "restart level after death" mode is enabled on the world map.
    • Fixed the speed confusion of free-falling platforms while the player is in process of power-up state-changing (that leads all platforms to pause their move, and then resume it).
    • Fixed the unexpected water splash effect appearance at BGOs.
    • Fixed an incorrect Link's alignment at the clown car after being transformed from anybody who rides Yoshi.
    • Fixed the problem that causes Link to die when attempting to fly up on the Clown Car while any vines behind him.
    • Fixed the thwomp's ground pound dirt effect being improperly aligned.
    • Fixed the dragon coins being transformed into the block by P-Switch activation.
    • Fixed the bullet bill that goes in the wrong direction after being unfrozen.
    • Fixed the incorrect blooper effect when stomped (when the npc-txt disables the "jumphurt" option).
    • Added the fixed behavior for the rail platforms and the grinder NPC (added special value that can choose the algorithm between buggy at SMBX 1.3 and fixed that allows safely resize their hitboxes with keeping rail attach spot being always centered).
    • Fixed a bug when the last world map music is not remembered when sound is disabled.
    • Fixed the inability to resume the world map music when going through the warp that leads to no music points or to music points with the same song.

Disadvantages of TheXTech compare to SMBX 1.3

  • WMA music format is not supported anymore. This is a proprietary format that hasn't have proper decoders that can be re-used to support this format (there is FFMPEG has the support).
  • No longer ships a built-in editor: it has been removed in favor of Moondust Devkit native support.
  • On computers with a slow drive, may cause minor lags (especially at the main menu) because of the lazy-decompression algorithm implemented to reduce the memory usage and decompress only textures that was been actually requested for the rendering a first time.

Super Mario Bros. X2

The extension mod over SMBX 1.3 was made as an attempt to resolve the fragmentation around LunaLua and additions, making the organized and united project, founded by Horikawa Otane in 2016'th year. Generally, it's a big hack over the original SMBX executable taken from SMBX 1.3 package, using the DLL Injection method and direct address assembly hacks.

Advantages of TheXTech over X2

  • Cross-platform support: Windows, macOS, Linux-based systems, Haiku, Emscripten, Android. X2 is able to work on Windows or on UNIX-like operating systems with the Wine. It no longer worked on macOS since 10.15 because of wine support broken.
  • Support for many architectures: x86_64, x86, ARM-compatible, PowerPC-compatible, WebAssembly, etc. X2 supports the x86 and x86_64 architectures only.
  • Lesser RAM usage (Average 70...120 MB usage compared to the 150...300 MB of X2).
  • Lesser processor load (4...40% compared to 30...60% of X2).
  • Has a much smaller package size (30...40 MB instead of 250-300 MB of X2).
  • Fully portable installation, doesn't require an installer to run, doesn't require admin/root rights in order to work.
  • Much faster loading time (on fast computers it goes almost instant). X2 loads very slow even on averagely powerful computers.
  • Gamesaves will appear at the isolated directory (settings/gamesaves/<name of episode directory>/<name of world map>.savx) to don't fill the episode directory with any junk content. Old game saves at episode directory will still be read by the game in order to allow the player to resume their game after the update from SMBX 1.3 to TheXTech.
  • Support for WLDX formats of the Moondust Project, and the almost complete support for LVLX. X2 has partial LVLX support, several unique features of the LVLX format aren't supported by X2.
  • Unicode file paths supported: you are no longer limited with ASCII-only file paths, you can freely name your music files and levels as you want in a condition you save your levels and LVLX and world maps as WLDX.
  • Has the ability to copy and delete game saves from the game menu (at X2 you also can remove game saves through the separated launcher application, but not through the game menu itself).
  • Has the full interprocess integration with Moondust Editor including the magic hand support for real-time editing (placing items selected at the Editor into the game directly, and taking items from the game, and modifying their properties at the editor). X2 has the level testing only without magic hand.
  • Working battle mode. X2 has it broken and glitchy.
  • Working two-player mode. X2 has working two-player mode, but it works faulty when using any new-added playable characters.
  • Customizable title scene. X2 just disables it completely because it's hard to alter it.
  • Customizable outro scene. X2 just avoids and breaks it.
  • Has the doze of new functions been added:
    • Added an ability to use up to 201 sections. X2 doesn't support this and keeps 21 sections limit.
    • Added the native multi-points support for NPC-192 (You are allowed to use multiple checkpoints at the same level: all taken checkpoints will disappear, the player will appear at last taken). X2 uses two new-added NPC and keeps NPC-192 with the old untouched behavior, marked as "deprecated".
    • Added the support for world map custom directories (You are no longer need to fill your episode directory with world map resources, you can put them at the world map file's namesake directory instead). X2 still doesn't support them.
    • Added the section vertical wrap support. X2 supports this through extra lua scripts, but this doesn't work natively by level file yet.
    • Added the ability to customize the "You need X stars to enter" message at warps. X2 doesn't support this.
    • Added the on-enter event at warps. X2 doesn't support this.
    • Added the ability to disable the inter-level scene (that shows player's portrait and lives left). X2 doesn't support this.
    • Added the ability to disable stars count printing per warp. X2 doesn't support this.
    • Added the cannon pipes. X2 supports this through extra lua scripts.
    • Added the ability to use portal warps as inter-level warps (can be used as exit as well as entrance). X2 doesn't support this.
    • Added an own timeout sound-92 for the P-Switch timer (will be played with 3 seconds before the end).
    • Added an option to make use of the Alt-Run key for Yoshi's Ground-Pound ([gameplay] section and 'ground-pound-by-alt-run' boolean field).
    • Message box line breaking algorithm has been improved, added support for new-line characters.
    • Added the support for playable character custom INI calibrations (made using the Moondust Player Calibrator).
    • Added an ability to globally override NPC settings by placing of npc-*.txt file into graphics/npc directly of assets.
    • Added the "gameinfo.ini" to give support for the partial customization of internals (window/game title, character names in menu, credits, etc.) and control the behavior of intro and outro scenes.
    • Added the speed-runner mode that enables the special built-in timer that counts the time spent on the walkthrough and sets the compatibility mode (to ensure all gameplay and physics improvements got been disabled) which is required for speed-running of episodes developed for original SMBX 1.3.
    • Added a better autoscrolling method that works from the section settings per each section.
    • Added the "Reset to default" menu item to reset controls at the game menu. X2 has this ability through the launcher application.
    • Added option to show a number of stars available/obtained in level on the world map. X2 has this ability through extra lua scripts.
    • Added the Yoshi mode support for specified songs at the music.ini: mute selected track number without Yoshi, enable it back when Yoshi is presented. X2 doesn't support this.
    • Added mask fallback support for custom graphics mask compatibility for old episodes. X2 doesn't support this. Attempt to play old episodes with missing masks, may cause some elements distorted (for example, beech Koopas and togglable barrier blocks).
  • Many old bugs of SMBX 1.3 got been fixed to provide more convenient and less annoying gameplay. The ability to re-enable certain bugs of SMBX 1.3 back was kept in order to correctly play certain levels and episodes expected these bugs being presented.
    • Known crash bugs got been fixed:
      • The attempt of NPC to go far off the screen and its attempts to find any nearest blocks. The latest X2 still crashes in this case.
      • When attempting to enter the locked warp or take the star with star-locked warp the game will crash if a level has no BGO at all. The latest X2 still crashes in this case.
      • etc.
    • Fixed the wrong speed-adding while climbing fence background objects. The latest X2 hasn't this fix.
    • Fixed the unnecessary ability to climb fences at invisible layers. The latest X2 hasn't this fix.
    • Resolved the problem of the moving layer after the level got restarted after the player's failure at it. The latest X2 hasn't this fix.
    • Fixed the True Bowser's behavior at old levels (such as "The Invasion 1" final level). The latest X2 hasn't this fix.
    • Fixed the incorrect BGO-65 appearance while playing old levels (made for SMBX 1.0.x). The latest X2 hasn't this fix.
    • Fixed the wrong framerate while processing the keyhole exit. The latest X2 hasn't this fix.
    • Fixed the inability of Peach to escape the running shell surf. The latest X2 hasn't this fix.
    • Stabilized the work of the Skull Raft. The latest X2 hasn't this fix.
    • Fixed the "conveyor bug": resolving the problem when a player attempts to jump while standing on NPC (any, including conveyor belt) that pushes them into the wall, causing them to go through the wall. The latest X2 hasn't this fix.
    • Fixed the case when Pokey getting collapsed during walking on slopes.
    • Fixed an inability to autostart events when "restart level after death" mode is enabled on the world map. The latest X2 hasn't this fix.
    • Fixed the speed confusion of free-falling platforms while the player is in process of power-up state-changing (that leads all platforms to pause their move, and then resume it). The latest X2 hasn't this fix.
    • Fixed the unexpected water splash effect appearance at BGOs. The latest X2 hasn't this fix.
    • Fixed an incorrect Link's alignment at the clown car after being transformed from anybody who rides Yoshi. The latest X2 hasn't this fix.
    • Fixed the problem that causes Link to die when attempting to fly up on the Clown Car while any vines behind him. The latest X2 hasn't this fix.
    • Fixed the thwomp's ground pound dirt effect being improperly aligned. The latest X2 hasn't this fix.
    • Fixed the dragon coins being transformed into the block by P-Switch activation. The latest X2 hasn't this fix.
    • Fixed the bullet bill that goes in the wrong direction after being unfrozen. The latest X2 hasn't this fix.
    • Fixed the incorrect blooper effect when stomped (when the npc-txt disables the "jumphurt" option). The latest X2 hasn't this fix.
    • Added the fixed behavior for the rail platforms and the grinder NPC (added special value that can choose the algorithm between buggy at SMBX 1.3 and fixed that allows safely resize their hitboxes with keeping rail attach spot being always centered). The latest X2 hasn't this fix. Instead, X2 adds new NPCs that represent old, but with the fixed behavior.
    • Fixed a bug when the last world map music is not remembered when sound is disabled. The latest X2 hasn't this fix.
    • Fixed the inability to resume the world map music when going through the warp that leads to no music points or to music points with the same song. The latest X2 hasn't this fix.

Disadvantages of TheXTech compare to X2

  • There is no scripting support yet. X2 has robust lua scripting support with a wide library of extensions, and the LunaDLL Autocode for backward compatibility with pre-LunaLua episodes.
  • No new added in-game objects. TheXTech keeps all existing in-game elements to follow the SMBX64 standard without any additions.
  • No new playable characters: there are 5 classic characters were only.
  • Can't customize HUD as the scripting system is needed.
  • Can't customize the behavior of playable characters and/or NPC as the scripting system is needed.
  • Has no support for blocks, background objects, and backgrounds custom configs.
  • Has no support for customizable multi-layer backgrounds yet.
  • No shaders and graphical effects have been used.

Advantages that both TheXTech and X2 has

  • New functions have been added:
    • The built-in GIF recorder is activated by F11 (F10 on macOS) key.
    • Added the native support for episode-wide and level-wide music.ini to override default music with custom.
    • Added the native support for episode-wide and level-wide sounds.ini to override default SFX with custom.
    • Added the two-way warps support.
    • Added portal warps (instant warps that save the X and Y speed non-zeroed).
  • Fixed old bugs of SMBX 1.3:
    • Known crash bugs got been fixed:
      • "mushroom lava soup" crash.
      • Venus Firetrap with a pipe exit division by zero.
      • etc.
    • Fixed the problem that causes NPC to get clipped into the floor while standing on a block of a down-moving layer.
    • Fixed the problem that causes players to get clipped into the floor while standing on a block of a down-moving layer.
    • Fixed an unwanted player bounce by a filter block after NPC stomp.

Super Mario Bros. X By 38A

SMBX-38A - The alternative SMBX Engine implementation made by Chinese developer 5438A38A and released in 2015th year. It's a fully different implementation made from scratch and it has different everything: physics, most of the workflow logic, and functionality.

Advantages of TheXTech over SMBX-38A

  • Has the generally more stable physics implementation (except for several cases that are explained at "disadvantages")
    • At SMBX-38A there is the wrong block hit way: it always hits the block at left, it should hit the block that is closer by the center to the player's center as every SMBX branch generally does
    • Peach won't float after juped from vines
  • Better support for MixerX library (there is an update needed at the side of the SMBX-38A game to handle several nice features)
  • Don't have the music volume problem (SMBX-38A sets all music to the full 128 volume that is incorrect: level music volume must use the 54 volume as every SMBX branch does by default)
  • Never converts old levels, world maps, and graphics into the new format without user's asking (SMBX-38A does that automatically once level was opened)

Disadvantages of TheXTech compare to SMBX-38A

  • Still being faulty at collision physics:
    • Faulty at slope blocks
    • Has several collision issues causing the player to behave weirdly
  • Lack of scripting system such as TeaScript
  • Lack of extra physical environment zones
  • Lack of custom angles for NPC generators
  • Lack of spawn events
  • Lack of world map layers and events system
  • Lack of expressions at all
  • etc.

Advantages that both TheXTech and SMBX-38A has

-- not written yet --

Functionality comparison

This table lists features that were available at every branch of SMBX:

Feature SMBX 1.3 SMBX-38A SMBX-X2 TheXTech Moondust Engine
First SMBX Chinese LunaLua Hack C++ Port Generic engine
General features
Mixer X sound library - + + + +
PNG custom graphics - + + + +
PGE-X Level File (LVLX) - - + + +
PGE-X World File (WLDX) - - - + +
music.ini - - + + +
sounds.ini - - + + +
Player calibration INI - - + + +
Scripting support - TeaScript Lua, Autocode - Lua
Level features
More than 21 section - - - + +
Vertical section wrap - + + + +
Portal warps - + + + +
Cannon pipes - + ? + +
Two-way warps - + + + +
BGO Z-Layer/Offset - - Partially* + +
Warp on-enter event - + - + +
Warp custom stars message - + - + +
Multiple checkpoints - + +** + +
World map features
Custom music for boxes - + - + +
Custom directory for maps - - - + +
World map layers and events - + - - -
Clone this wiki locally