Super Mario Bros. X by 38A

Super Mario Bros. X by 38A (known as "SMBX-38A" and "SMBX 1.4") - is a Mario fan game engine, written by 5438A38A as an unofficial successor to the original Super Mario Bros. X by Redigit. The game is written in Visual Basic 6 (VB6). Before November 2015, SMBX 1.4.1 was considered to be fake until Kevsoft and Wohlstand found it and successfully installed it on their computers.

History
In 2013'th year, the Baidu Tieba user 5438A38A had told that the reason for SMBX 1.3 usage has much smaller significance than the development of a new game version, and he had announced the beginning of the "SMBX 1.4" development.

The first version was been released in 2015'th year and was been published at the Baidu Tieba. Initially the game was available in China only, and was being hard to download outside the China and wasn't working on a non-Chinese computer. The first introduction for the SMBX-38A happened on September 13, 2015, when Snoopy Tour has made a post with a link to Baidu where the "SMBX 1.4.1" was published, but people are not beloved him (Everyone thought it was one another "SMBX 1.4" that was most known for being a fake around YouTube). Kevsoft tried to find a download link and finally found it, downloaded a recent build from Baidu Pan, and tried to test it on Windows 7 x64, but failed. When he sent this build to Wohlstand, he found a way to run it in Windows XP using virtual box. Later Wohlstand contacted the original author and cooperated with him. Since that time, the SMBX-38A got been finally fixed to work on any computers in the world and developed popularity in the international community becoming a powerful competitor to the SMBX 1.3 and even to the SMBX2. Because the official SMBX community staff rejected the dedication of the place for SMBX-38A discussions, the official place for the SMBX-38A got the "home" at the WohlSoft Forums at the SMBX section.

During the 2016 and 2017'th years, people were found a lot of hidden features and easter eggs in the game: people were needed to solve the challenge or a bunch of math problems to get access to the hidden feature as a reward.

Later, in 2018'th year, the Kevsoft the user has made the "Haxagon" utility that got been used to crack in-game easter eggs easily (worked on 1.4.3 and 1.4.4 versions). This fact angered 5438A38A, and he added the next text as a response on the fact the game was hacked:

"As a response to cheaters...


 * 1) The released date of smbx 1.4.5 will be postponed indefinitely, depending on my mood.
 * 2) The hidden functions will be completely remove in smbx 1.4.5, if you map used these features, you map will be broken.
 * 3) No documents(changlogs, script help file, example levels etc.) will be offer in smbx 1.4.5.
 * 4) The source code will never be published.

Why did this happen?

"You can use ANY accessible tools or methods to beat this game, including calculators, search engines and other people. However, cheat engine or so-called 'debuggers' are NOT allowed."


 * 1) I didn't get any profits from this project.
 * 2) A lots people ignore my rules of bug reporting and feature suggestions.
 * 3) They paid no price and made no contributions and make a ton of suggestions.
 * 4) I add minigames as a punishment, but some people hacked it.
 * 5) So this is the result."

In 2019'th year the new version for SMBX-38A 1.4.5 was out. The most of hidden features in this version were converted into normal functions and integrated into GUI. It got the majorly refactored GUI with a different overlay than attempting to repeat the SMBX 1.3 at the past version. This version got the most of the bugfix patches were out after release. People started to research it and got found various hidden offensive hints such as "crack me" inside the executable file.

System requirements

 * Operating system: Windows XP/7/8.1 or 10, or Windows XP on VirtualBox with support of Direct X and enabled 2D and 3D acceleration support!
 * SMBX-38A will work on Linux or on Mac with Wine, but you need to install the Direct X 9 and VisualBasic 6 Runtime (MSVBVM6). It is recommended that you use PlayOnLinux or PlayOnMac with the latest 32-bit version of Wine, but SMBX-38A works without it.
 * Direct X 9 support

Command line syntax (since January 21, 2016)
A new update of SMBX-38A 1.4.2 allows you to launch an episode or level test from the command line. (Also via drag&drop of the file into smbx.exe or associating ".wld" and ".lvl" files with executable.)

Command syntax:

path

 * Path of level-/world-file or world-folder.

modes

 * from 0 to 4:
 * 0 - 1p mode (input: lvl)
 * 1 - 2p mode (input: lvl) / Load save 1 (input: wld/map)
 * 2 - battle mode (input: lvl) / Load save 2 (input: wld/map)
 * 3 - Start Game Engine with inputted worlds-folder (input: directory) / Load save 3 (input: wld/map)
 * 4 - Start Level Editor and load inputted level/world (input: lvl/wld)

p1id, p2id

 * from 1 to 5:
 * 1 - Mario
 * 2 - Luigi
 * 3 - Peach
 * 4 - Toad
 * 5 - link

args (for developers)

 * "SMBXArgs|hp,co,sr|p1p,p1i,p2p,p2i|levelname,cppid,cpidn" [***urlencode!***] (the whole string should be URL-encoded)
 * hp = initial 1up number
 * co = initial coins number
 * sr = initial score
 * p1p = player1's state
 * p1i = player1's mount
 * p2p = player2's state [1~12]
 * p2i = player2's mount [-3~8]
 * levelname = level's filename(same as "GGI|GM"'s levelname) [***urlencode!***] (this should be URL-encoded separately, no matter that an entire SMBXArgs line is also URL-encoded)
 * cppid = checkpoint's perm ID
 * cpidn = checkpoint's advset value

examples for SMBX-38A v1.4.2 (outdated)
Launch a test of the "test.lvl" in a battle mode with Mario and Luigi:

Launch a test of the "anoying-place.lvl" in a 1 players mode with Toad:

Launch a test of the world.wld with save 1 and with 1 player mode, with Mario:

Launch a test of the world.wld with save 1 and with 2 player mode, with Peach and Mario:

Launch a test of the world.wld with save 1 and with 1 player mode, with Link:

SMBX-38A 1.4.1 (65)

 * Versions:
 * Main Release
 * Last released patch with unknown number.
 * File Documentation
 * Version 65/66 (pdf)
 * Version 65/66 (odt)
 * Version 65/66 (txt)

SMBX-38A 1.4.2 (66)

 * Versions:
 * Main Release
 * Patch 0
 * Patch 1
 * Patch 2
 * Patch 3
 * Patch 4
 * Patch 5
 * Patch 6
 * File Documentation
 * Version 65/66 (pdf)
 * Version 65/66 (odt)
 * Version 65/66 (txt)

SMBX-38A 1.4.3 (67)

 * Versions:
 * Main Release
 * Patch 0
 * Patch 1
 * Patch 2
 * Patch 3
 * Patch 4
 * Patch 5 (Note: Archive has password 'smbx38a' due antiviruses false positives)
 * Patch 6
 * File Documentation
 * Version 67 (rtf)
 * IPC Interface
 * C++ Example & Documentation
 * VB.NET Example & C# Example

SMBX-38A 1.4.4 (68)

 * Versions:
 * Main Release
 * Patch 0
 * Patch 1
 * Patch 2
 * File Documentation
 * Version 68 (rtf)

SMBX-38A 1.4.5 (69)

 * Versions:
 * Main Release
 * Patch 0
 * Patch 1
 * Patch 2
 * Patch 3
 * Patch 4
 * Patch 5
 * Patch 6 Missing yet
 * Patch 7
 * Patch 8
 * Patch 9
 * Patch 10
 * Patch 11
 * Patch 12
 * Patch 13
 * Patch 14
 * Patch 15
 * Patch 16
 * Patch 17
 * Patch 18
 * Patch 19
 * Patch 20
 * Patch 21
 * Patch 22
 * Patch 23
 * Patch 24
 * Patch 25 Missing yet
 * Patch 26
 * Patch 27
 * Patch 28
 * Patch 29
 * Patch 30
 * Patch 31
 * Patch 31.1 (Fixes this bug only)

What SMBX-38A has that PGE Project doesn't have in its components (yet)

 * Fully working and playable engine (however, has different physics even in comparison to official Redigit's SMBX implementations. PGE Engine allows customizing playable character physics to have any of them. But PGE Engine itself is still in alpha development state yet)
 * Tea Script (VB-Like language made by the developer of SMBX-38A)
 * More event actions (including the ones which are planned for PGE Engine)
 * More flexible exit codes parsing per level points on world maps (conditions are supported)
 * More flexible "physical environments" (aka "liquids") support: support of additional events, like trigger event when player/NPC intersected or contacted with the liquid zone
 * Round shaped "physical environment zones"
 * Support of "smart" blocks (this magical thing tries to guess which block must be placed near blocks which you recently placed (works similarly to Super Mario Maker), and it transforms these blocks into the "CORRECT" blocks)
 * Built-in graphics editor (it's already planned to appear in PGE Editor too. It will be more advanced with the support of animation making/configuring/debugging and with support of opening/saving directly into PNG and even GIF+GIFm for easier recoloring process, restyling or creating SMBX 1.3 compatible elements from scratch)
 * A lot of new stuff: blocks, NPCs, BGOs, power-ups, bonuses, etc! (they will be added in SMBXtended project for PGE)
 * SMBX-38A's levels and world map file formats are not compatible with SMBX 1.3. Support for SMBX-38A file formats is experimentally supported by all PGE components (in the PGE File Library).
 * Implemented layers and events system on the world maps (which are was planned for PGE Engine)
 * GUI-based config editing for blocks, BGOs, terrain tiles, paths, scenery, levels objects (even PGE Editor and PGE Engine are supports own INI-based custom configs for every object include backgrounds)

What PGE has that SMBX-38A doesn't have

 * Lua scripting which based on advanced luabind library! Lua gives the ability to code scripts with algorithms of any complexity! Lua is a popular scripting language used in many various games, engines, and other software and has a wide community that supports it. Together with LuaJIT, lua scripts are working fast almost compared to native code.
 * Multi-Document Interface in the PGE Editor which allows you to open and edit multiple files at the same time!
 * Multi-selection support with drag & drop support (implemented since SMBX-38A v.1.4.3)
 * History manager which tracks each of your changes and allows you to undo or redo them! (totally history manager of PGE Editor remembers about 300 actions, but you can change that limit in the settings if you won't remember more!)
 * Zoom support in the PGE Editor
 * Item specific context menu support
 * Programmable NPC-AI which allows you to make a completely new NPC from scratch without using pre-programmed algorithms. That will work in PGE Engine only.
 * Smooth animation with V-Sync support and variable frame delay in the PGE Engine.
 * Absolute customization with config packs system, which allows you to make absolutely new game from scratch with the full ignoring of already pre-made stuff and with ignoring of SMBX64 standard. (Different item sets: different default blocks, BGOs, NPCs, terrain tiles, sceneries, paths, level entrance tiles, sounds, music, character sets (number of them, their abilities), etc.)
 * Backward compatibility between SMBX 1...64 standard file formats, which gives the ability to make correct LVL/WLD files especially for old SMBX versions, including even SMBX 1.0, 1.2, 1.2.2, etc.!!!
 * User-friendly section-settings event configuring
 * Customizable and flexible tileset item boxes in PGE Editor, which allow you to create your own custom tilesets per level/episode! (unlike fixed tilesets of any SMBX Engine, how 1.3 and 38A too)
 * Customizable item counters inside debugger box in the PGE Editor
 * Filter search support for item selection boxes (for example, choosing which NPC will be packed into a block)
 * Filter-search and category-based item boxes
 * Search ability to find any placed items in a level and in the world maps
 * Position Bookmarks which allows you to bookmark your camera position! PGE Editor will remember these specific locations in level and world maps to let you quickly return back!
 * List-based warps editing
 * Cross-file section cloning support (unlike old SMBX engines, with PGE Editor you can clone sections between different files!)
 * Clearing section support (you can delete everything in a specific section with PGE Editor)
 * World Map testing support (you can walk on your new-created world map to preview it in real work, and imitate exit codes when you trying to enter levels)
 * Support of unlimited amount of sections (SMBX-38A still keep limit of 21 section per level)
 * Support of flexible BGO layering by Z-Layer/Z-Offset per each BGO (every individual BGO element can have its own Z-Order priority level which giving you full control over background objects in PGE Editor and in the PGE Engine, but partially with some tricks you even can manipulate with order priorities while saving levels for SMBX 1.3)
 * Built-in audio-conversion and bug-fixing maintain toolsets: you can convert PNG to masked GIFs which are compatible with SMBX <=1.3, convert SMBX's masked GIFs into PNG, fix lazily-made masks which causing wrong to render result with an alpha-blending algorithm, clearing-up junk NPCs caused by vine bug in SMBX 1.3, etc.
 * Automatic backups on the crash of the PGE Editor with auto-restoring ability
 * WIP plugin support in the PGE Editor coded in JavaScript
 * Customizable level backgrounds by background2-*.ini custom configs in PGE Editor and PGE Engine
 * PGE is Cross-platform: PGE has native Linux and Mac OS support without requirements of Wine usage, and also Android port of PGE Engine to play SMBX Episodes (and other games built on PGE Engine) on your Smartphone or Tabled!
 * Free and Open Source (while SMBX-38A is closed source, and also distributing in packed executable format, done with PECompact v.2)
 * PGE is coded in C++ and it never has international troubles which VisualBasic 6 has (Familiar error of SMBX 1.3 is RunTime error 13, caused by comma/dot mismatch in floating-point numbers inside NPC-*.txt custom configs).
 * PGE Editor and PGE Engine has full Unicode support which allows making own translations of GUI and in-game texts, character dialogues, etc., allows free use of non-ASCII characters in file names in international projects, etc.

What SMBX-38A and PGE both have now

 * Support of custom PNG CGFX
 * Hardware render with OpenGL (PGE-side) and Direct X 9 (SMBX-38A-side)
 * Line fill tool (in PGE there's a limit of 45 degrees to make correct slopes and walls. In SMBX-38A any line angle is allowed)
 * Rectangle fill tool
 * Flood-fill tool
 * Rectangle-based selection
 * Ability to export an image of any level region (in PGE it's more user friendly)
 * Vertical section wrap support
 * Custom world map music support
 * Modified SDL Mixer X library extended with the support of Game Music Emulator formats and with the support of looping OGG music files (via Vorbis tags). Added into SMBX-38a since Wohlstand made VB6 wrapper and sent it to 38A.
 * World Map music can be played in the editor
 * Circle fill tool (in PGE Editor placement at the corner like rectangular and line placement which allows making ellipses rather circles, in SMBX-38A placement is polar, at center)
 * Built-in GUI-based NPC.txt editor with an interactive preview of target NPC CGFX
 * Multiselection
 * Cannon-exit pipes which are shoots player out of the pipe on exit in both PGE Engine and SMBX-38A
 * Two-way warps which are requiring a single warp entry rather than two like in all versions of SMBX and old versions of SMBX-38A

Random Crash
SMBX-38A has a Random Crash with "Runtime Error 9: Subscript out of Range".

Distorted Sound (Wine)
Depending on the system, running SDL2MixerVB.dll via Wine may produce a distorted audio output. There are two workarounds for this.

The first is changing the SDL audiodriver to winmm, which can be done by entering "wine regedit" in a terminal, navigating to, adding a new String Value SDL_AUDIODRIVER and modifying it to winmm.

The second is using a version of SDL2MixerVB.dll built on SDL 2.0.8. It can be downloaded here.

D-Pad doesn't work
In some cases, SMBX-38A may not recognize D-Pad inputs, but Analog inputs will still work. antimicro and xboxdrv can work around this issue.

Links

 * Official sub-section about SMBX-38A on PGE Forums
 * Main discussion thread about SMBX-38A on PGE Forums
 * Troubleshooting sub-section for SMBX-38A
 * Official 1.4.1 update announcement on Baidu Tieba (Chinese)
 * First video footage by Wohlstand
 * Video footage by bossedit
 * Video Overview by Axiom