Using TheXTech v1.3.5.2+ for Speedruns (Windows, MacOS, Linux)
Using TheXTech v1.3.5.2+ for Speedruns (Windows, MacOS, Linux)
Updated 2 years ago by 0lhi

TheXTech is an open-source C++ Port of the original SMBX-Code that officially supports Windows, MacOS, GNU/Linux, Android and xBSD systems. It can also be compiled for other platforms. You can download it on GitHub or the WohlSoft Forums.

Version 1.3.4 introduces a Speedrunner Mode that uses the same In-Game Timer as SMBX2, though due to recent changes, is the minimum version required. It comes with 3 Modes:

  • Mode 1 is for Episodes that are targeted for TheXTech.
  • Mode 2 simulates SMBX2 Physics.
  • Mode 3 simulates SMBX 1.3 Physics.

You must use either Mode 2 or 3 to speedrun SMBX Episodes. There are two ways to enable them:

1. Via settings/thextech.ini (Recommended)

Open the settings file in an Editor, and add/change the [speedrun] section to:

[speedrun] mode = 2 semi-transparent-timer = false

2 can be replaced with 3, false can be replaced with true to make the timer translucent, like in the recording above.

2. Via a custom command

If you don't want the Speedrun Mode to be enabled by default, you can start it temporarily by using one of these custom Commands:

 *thextech --speed-run-mode 2 --speed-run-semitransparent*
 *thextech --speed-run-mode 3 --speed-run-semitransparent*

--speed-run-semitransparent makes the timer half-transparent. (Optional.)

For quick access, you may add it to a shortlink:

Alternatively, you can open the Terminal/Command Line in the same folder as the executable, and paste the command. Depending on your Operating System and Installation Method, you may have to replace thextech with one of the following:

Windows: smbx-win64.exe | smbx-win32.exe | smbx-arm64.exe | thextech.exe Unix-based: ./thextech | ./smbx

Configure the Timer Stop via compat.ini

By default, the Timer will stop at the built-in "End Game" trigger. Different triggers for the stop can be configured by editing the compat.ini file inside an episode or level folder.


This will keep the default setting.

[speedrun] stop-timer-by = none


Stops the Timer when a certain Event is triggered.

[speedrun] stop-timer-by = event stop-timer-at = "Event Name"


Stops the Timer when leaving a certain Level (enter without .lvl/.lvlx).

[speedrun] stop-timer-by = leave stop-timer-at = FinalBossLevel


Stops the Timer when entering a certain Level (enter without .lvl/.lvlx).

[speedrun] stop-timer-by = enter stop-timer-at = EpisodeCreditsLevel