Super Mario Bros. X by 38A

From Moondust Wiki
Revision as of 05:04, 29 July 2020 by Olhi (talk | contribs) (→‎Bugs)
Jump to navigation Jump to search

This page is about SMBX by 38A. For other uses, see SMBX (Disambiguation).

Super Mario Bros. X by 38A


Main menu of game

Platforms: Windows XP, Vista, 7, 8.1, 10
Linux/OS-X under Wine
Initial release:
Latest version: 1.4.5 (July 4, 2019)
End of life:
Coded in: Visual Basic 6
Code model:
License: Freeware / Closed Source
State: Actual
Download: Download SMBX by 38A
Source code:
Official site: SMBX 1.4.4 on

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.

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 episode or level test from command line. (Also via drag&drop of the file into smbx.exe or associating wld and lvl files with executable.)

Notice Note: Since 1.4.3 there is a new comand line syntax!

Command syntax:

smbx.exe [path mode p1id p2id args]


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


  • 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:

smbx.exe "d:\smbx\worlds\test.lvl" 2 1 2

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

smbx.exe "d:\smbx\worlds\anoying-place.lvl" 1 4 0

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

smbx.exe "worlds\the invasion 2\world.wld"

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

smbx.exe "worlds\the invasion 2\world.wld" 1 3 1

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

smbx.exe "worlds\the invasion 2\world.wld" 1 5 0

Version History

SMBX-38A 1.4.1 (65)

Notice Important note: Some of those builds are has a strong imperfection which requires you to toggle your locale into Chinese (on the non-Chinese operating systems) or there are will crash with Runtime 13 error. Those builds are using Direct X 8 and will not work on Windows Vista because it completely lacks it. You need to run game as admin to allow it automatically register necessary COM servers in the presented DLLs.

SMBX-38A 1.4.2 (66)

SMBX-38A 1.4.3 (67)

SMBX-38A 1.4.4 (68)

SMBX-38A 1.4.5 (69)

Notice Note: All patch archives has password 'smbx38a' due antiviruses false positives


Comparison between PGE Project and SMBX-38A

What SMBX-38A has that PGE Project doesn't have in it's 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 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 are 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 ability to code scripts with algorithms of any complexity! Lua is popular scripting language used in many various games, engines and other software and has wide community which 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 your change 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 want remember more!)
  • Zoom support in the PGE Editor
  • Item specific context menu support
  • Programmable NPC-AI which allows you 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 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, musics, character sets (number of them, their abilities), etc.)
  • Backward compatibility between SMBX 1...64 standard file formats, which gives 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 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 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 tool sets: 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 render result with alpha-blending algorithm, clearing-up junk NPCs caused by vine bug in SMBX 1.3, etc.
  • Automatic backups on crash of the PGE Editor with auto-restoring ability
  • WIP plugin support in the PGE Editor coded in JavaScript
  • Customable 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 VisualBasics 6 has (Familiar error of SMBX 1.3 is RunTime error 13, caused by comma/dot missmatch in floating-point numbers inside NPC-*.txt custom configs).
  • PGE Editor and PGE Engine are has full Unicode support which allows making own translations of GUI and in-game texts, character dialogues, etc., allows free using of non-ASCII characters in file names in the 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 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 support of Game Music Emulator formats and with 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 corner like rectangular and line placement which allows make ellipses rather circles, in SMBX-38A placement is polar, at center)
  • Built-in GUI-based NPC.txt editor with interactive preview of target NPC CGFX
  • Multiselection
  • Cannon-exit pipes which are shoots player out of pipe on exit in both PGE Engine and SMBX-38A
  • Two-way warps which are requiring a single warp entry rather 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)

Wine Registry Editor

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 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\, 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.


Super Mario Bros. X