TheXTech

TheXTech - it's a platform game engine written in C++, is a full port of source code of SMBX 1.3 which was originally written in Visual Basic 6. Created by Wohlstand after one month since original SMBX source code was been released for two purposes: providing a free and open-source, cross-platform and accurate implementation of the SMBX Engine to allow playing of old levels and episodes, created for an original game, with the same behavior as the original game had; get a more convenient research model for a PGE Engine development.

Version history
Development of TheXTech was started after a week after releasing of SMBX' source code into the public.

1.3
A first working thing which was developed in 2 weeks after SMBX's source code was opened and researched. It was a working but buggy build which was polished later to prepare it for 1.3.1. It was developed in hide with a purpose to make a sudden surprise for a community.

1.3.1
A first public release out in March 14, 2020.

1.3.2
An update released in April 26, 2020. This version fixes some bugs and introduces minor improvements. A level testing integration with PGE Editor since now is supported natively.

Differences with an original game
While game is an accurate port of an original game, it has several differences and enhancements:


 * First off, it's written in C++ while original (as we already know) is written in VB6.
 * Doesn't have an Editor. Instead, since 1.3.2 it have a deep integration with PGE Editor that allows to use it with the same functionality as in original editor (the "magic hand" functionality was kept to allow real-time editing of the level while testing, it's needed to use IPC communication with PGE Editor to get the ability to use it better).
 * Full support of UTF-8 in filename paths and internal text data (original game had the only 8bit ANSI support).
 * For graphics and controlling, it uses an SDL2 library while original game have used WinAPI calls and GDI library.
 * It uses PGE-FL that has better file formats support.
 * A support for WLDX world maps are allowing unlimited credits lines and custom music without it being necessary to use a music.ini for music replacements.
 * Some LVLX exclusive features now working: vertical section wrap, two-way warps, custom "star needed" message, warp enter event, ability to disable stars printing in HUB episodes for specific doors, ability to disable interscene showing when going to another level through a warp.
 * Built-in support for episode and level wide music.ini and sounds.ini to override default music and sounds assets.
 * World maps now supports a custom directory to store any specific resources like custom tiles/scenes/paths/levels and not spam the episode root folder with world map resources anymore.
 * Default config format is INI, old config.dat format is no longer supported, mainly because of incompatible key code values (SDL_Scancode versus VirtualKeys enum of Windows API).
 * Game saves now using the SAVX format instead of a classic SAV. However, if you already have an old gamesave, you still can resume your game by using a new engine now (next gamesave attempt will result a SAVX file, old gamesave in SAV format will be kept untouched).
 * Built-in PNG support for custom and default graphics. Masked GIFs are still supported for backward compatibility, however, without making an unexpected auto-conversion like SMBX-38A does.
 * Checkpoints now have multi-points! You can use them in your levels multiple times without limits!
 * It does use of lazy-decompress algorithm to speed-up the loading of a game and reduce the memory usage.
 * For music and SFX, the MixerX library is used to give a support for a wide amount of sound and music formats!
 * It doesn't embeds any graphics: there are NO trurely hardcoded graphics, everything is now represented by external graphics!
 * Some internal limits have been expanded.
 * Built-in GIF recorder by F11 key (F10 on macOS, F11 is reserved by system UI for a "show desktop" action).
 * Since 1.3.2 a maximum sections limit has been extended up to 201.
 * Since 1.3.2 a 20 entries limit for layers lists to show/hide/toggle has been removed.

Links

 * An official forum post
 * A first announcement
 * A video showcase