Meet TheXTech: a full working cross-platform port of SMBX engine [1.3.6.4]

Description: General discussion regarding the current engine development.
Moderators: Moderators, Semi-moderatos

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #1by Wohlstand » 14 Mar 2020, 16:18

Hello everybody!

Image


Did you see that I have done little work in my public repositories during February and at the start of March 2020? So, I did a lot of work which I am going to present to you all: it's a full C++ port of the original SMBX engine which now works on multiple platforms (tested on Linux, Windows, macOS, Haiku, and Android), and it does accurately represent original gameplay with the rest of features and bugs!


Some screenshots
Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

How I made it?
Since February 2, SMBX's original source code is now open. This fact gave me a lot of helpful material which will help me to make the Moondust Engine better and faster! However, dealing with the VB6 environment is not convenient, and at the same time, it's not stable on Linux (because of the graphical engine and risk of VB6 IDE's crash due to using external DLL libraries). So, to get it to work easier, I remembered my very old idea to port the whole SMBX code to C++. So, after a week of initial research, I began working. After a week and a half, I got a fully working (but buggy in some places) thing. Then, I spent time debugging it and making it usable by everyone. It's the full replica of SMBX 1.3 with the rest of its logical bugs (with some exceptions: I did fix several crash bugs that were a big annoyance while playing a game). It works on multiple platforms: it works on Windows both 32 and 64 bits, on Linux, on macOS, (also may work on Haiku and xBSD). Since version 1.3.5 has Android support!


Frequently Asking Questions
This paragraph contains a list of several questions you would to ask me, I'll give answers to most of them.
Frequently Asking Questions
What is this?
It's a port of an old VB6 engine, purely written in C++. It reproduces an old engine completely (except an Editor), and includes lots of its logical bugs (crashy bugs where they were found and then fixed).


Why did you make it?
Why? I have several purposes for why I made it:
  • It's a very convenient life model for research I want to use in PGE Engine development.
  • To make it work without it being necessary to use Wine on non-Windows platforms and allow it to run on any other than x86 platforms.
  • To be able to optimize it to make it use fewer hardware resources than the original VB6-based build of a game.


You have PGE Engine, why you have spent over one month crafting this thing?
I need it for PGE Engine development directly, it's much easier to hack and inspect rather than deal with the old and inconvenient VB6 environment.


What's the future of Moondust Engine as TheXTech now exists?
I'll continue the development of the Moondust Engine as I still have to pass the second goal of the Moondust Project.
Since the foundation, Moondust Project had two goals: 1) save SMBX; 2) give a flexible toolkit for new platform games. Opening of SMBX sources and introducing TheXTech has solved the first goal: SMBX has been saved and now it's free and open-source cross-platform software. Moondust Engine will be used to pass the second goal - giving a toolkit for new games. Unlike TheXTech, Moondust Engine gives full flexibility that allows anyone to build something new from scratch without inheriting an old game base. However, TheXTech is needed for Moondust Engine as a working research model to develop a new engine. It will be similar to GZDoom and Chocolate Doom ports of the Doom game: GZDoom is a powerful and functional engine, the best choice of modders; a Chocolate Doom is an accurate port of the original game to a modern platform with a purpose to represent an original game including even bugs. The Moondust Engine intends to be like a GZDoom while TheXTech is an analog of Chocolate Doom to represent an original game on modern platforms.


Can LunaLua work on this?
No, LunaLua won't work: this project is binary-incompatible with LunaLua. This also means that SMBX2 content is incompatible.


How to use this?
Here are many ways to play games with it:
- there are some ready-for-use packages, just take and use as you did it with SMBX.
- [macOS users, skip this]: use by the same way as an original game: put an executable file into the game root folder with a "thextech.ini" that contains the next text:

Code: Select all

[Main]
force-portable = true

, music.ini, sounds.ini and additional "graphics/ui" folder. An important note: all default graphics must be converted into PNG, use the GIFs2PNG tool from PGE Project over your "graphics" folder with a "-d" switch. Don't use the "-r" switch to keep original GIFs together with new-made PNGs if you plan to continue the use of the original VB6-written SMBX.
- use it for debug mode: in your home directory, create the ".PGE_Project/thextech" folder (on macOS the "~/Library/Application Support/PGE Project/thextech") where you should put a full set of game resources and worlds stuff, this folder will work as a game root in the original game. This mode allows you to run an executable file from any folder location of your computer and use the same location of resources for all builds (except these are marked as portable by an INI file).


How to add custom episodes for the macOS version?
If you have a bundled build of TheXTech, all default resources are inside your .app: "Content/Resources/assets/". You can modify the content, but it's not recommended! Instead, after the first run of a game, in your home directory will appear the next directory:

Code: Select all

~/TheXTech Episodes

In this directory, you will find an empty "battle" and "worlds" folder to put your custom stuff. At the "~/Library/Application Support/PGE Project/thextech" path logs, settings, and game saves will be stored.
If you want to replace default assets with your own, you can modify the content of the app bundle or compile a new build by giving the necessary CMake arguments needed to pack your custom assets root and icon into the new bundle or make the assets-less build (if you give no arguments, the assets-less build will result). Therefore, you need to put the full content of the game root into the "~/Library/Application Support/PGE Project/thextech" folder, include default assets (graphics, music, sounds, intro and outro levels, default battle, and worlds folders).

How to develop episodes targeted to TheXTech?
This engine has full compatibility with almost all old episodes developed for SMBX 1.3 with some minor exceptions (if the certain level or episode do rely on the bug of the old game, you can add the "compat.ini" file at your level or episode to re-enable certain bugs which are required for level or episode to work normally).

You can use the same tools as you used to develop episodes for the original SMBX 1.3 (include the classic built-in editor of the old game). The engine doesn't include its own editor anymore, instead, you have two options to get the editor for this engine: do use the vanilla Editor and have all limits as SMBX 1.3, or do development in the modern Moondust Editor that will allow you to use brand-new features of the engine were inaccessible from the old editor.

You need to simply download the standalone Moondust (PGE Project) toolchain and take the latest "SMBX 1.3 Compatible" configuration package. Once you will start the PGE Editor, to get the direct level testing work, you should open (or create a new) any level file, open the Test->TheXTech menu, and choose the "Change path to TheXTech..." menu item. You should specify (or browse) the full path to the actual executable of the game, and press the Ok button. Once you set this properly, you can press the F5 key to start the level testing now.

You can save your level and world maps in LVLX and WLDX format, they are natively supported by TheXTech include the numerous unique features that came from Moondust and SMBX-38A standards, for example, the full ability to use the Z-Layer and Z-Offset, the warp enter the event, the custom "stars needed" message text, two-way warps, portal warps, vertical section wrap, support for more than 21 section, etc. On world maps, there are more than 5 credit lines available and the ability to set up the custom music file provided. The engine does the full support for PNG graphics and a lot of music and sound formats, customizable player hitbox calibration files (the same as for PGE Engine and SMBX2 being used).


What is different with this thing in comparison to the original VB6 build?
  • First off, it's written in C++ while original (as we already know) is written in VB6.
  • Doesn't have an Editor. Instead, in nearest future, it will have deep integration with PGE Editor that will allow to use it with the same functionality as in the 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 only 8bit ANSI support).
  • For graphics and controlling, it uses an SDL2 library while the original game has used WinAPI calls and GDI library.
  • It uses PGE-FL that has better file format support.
  • A support for WLDX world maps is 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 the 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 the episode and level wide music.ini and sounds.ini to override default music and sound assets.
  • World maps now support 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 game save, you still can resume your game by using a new engine now (the next gamesave attempt will result in a SAVX file, an 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 as SMBX-38A does.
  • Checkpoints now have multi-points! You can use them in your levels multiple times without limits!
  • It does use a lazy-decompress algorithm to speed up the loading of a game and reduce memory usage.
  • For music and SFX, the MixerX library is used to give support for a wide amount of sound and music formats!
  • It doesn't embed any graphics: there are NO truly 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)


How to build it?
You can read a guide on how to build this project from a source code which you can find here: https://github.com/TheXTech/TheXTech/wiki/Building-the-game

To build it, you need to have the next things:
  • CMake
  • Ninja optionally (to speeds-up the build process)
  • Compatible C/C++ compiler (GCC, Clang, MSVC haven't been tested yet)
  • Git (required to pull submodules and clone source of dependent libraries to build them in place)
  • Mercurial (required to clone an official SDL2 repository to build it in place here)
  • Optionally: system-wide installed dependencies: SDL2, libFreeImageLite (a modded implementation of the FreeImage), MixerX sound library, AudioCodecs collection of libraries. Having them be installed in a system gives a major build speed up. However, it's possible to build all these dependencies in place here with the cost of extra build time being added.

The official TheXTech documentation
Image
- https://github.com/TheXTech/TheXTech/wiki
Here you'll find a lot of guides and explanations for most of the TheXTech.


DOWNLOADS
Feel free to try it out in action now:
There are ready-for-use packages, equipped with original SMBX 1.3 assets and "The Invasion 2" episode.

Download the game:
All stable downloads were at the project's home page

If you are looking for fresh in-development versions, please see this page.

Needed more episodes?
If you are looking for more episodes, please visit the archive of preserved SMBX episodes (You can browse these directories where episodes will be compatible: SMBX 1.3, SMBX 1.0 - 1.2, and TheXTech. All other directories will contain incompatible episodes that will not properly work, see details here).

Also, you can find some episodes at SMBX Episodes section of WohlSoft Forum, or browse the episodes sub-section at SMBX forum where you still can find any compatible episodes (which was originally targeted to SMBX 1.3).



The full C++ source code repository:
Image
- https://github.com/TheXTech/TheXTech

If you have any questions, problem reports, or suggestions, feel free to write to me!


Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

TheXTech v1.3.5.2: More than just a bugfix update

Post #121by Wohlstand » 19 Oct 2021, 21:08

This update should've been a bugfix update, however, it introduces some set of new nice features you would like!

Note: To get the full power of TheXTech while making new projects, the special Moondust Devkit configuration package is suggested (the latest laboratory Moondust Devkit required until the next stable devkit version 0.4.3.1 release).

Significant changes
  • Added an option to enable the background game controller input handling
  • Portal warps have been allowed to be used for level entrances and level exits (Instant warps kept unsupported to avoid possible compatibility issues)
  • Added the cannon pipes that can shoot the player with a given speed
  • Added the opt-in 2x scale down optimization for all textures to reduce the memory usage
  • License was changed into GPLv3 (see details: https://github.com/Wohlstand/TheXTech/issues/162)
  • Enabled the work on the Android TV
  • Added mask fallback support for custom graphics mask compatibility for old episodes
  • Added an ability to change the look of the launcher screen on Android via gameinfo.ini (Change the logo, change the background, and set up the simple animation)
  • Added wireless game controllers battery status displaying when enabled at the settings
  • Added device battery status displaying at the right-top corner when enabled at the settings
  • Fixed an inability to save the game when game assets were stored at SD Card on an Android device
  • 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 a fixed behavior for rail platforms and grinder (NPC-60, NPC-62, NPC-64, NPC-66, NPC-104, NPC-179). It can be enabled using new-added custom values

Changes for 1.3.5.2
  • Fixed the ARM64 building
  • Updated the log writer
  • Disabled the "Boss Dead" event hook to stop the episode speed-run timer by default, added the compat.ini options to enable and configure it
  • Fixed the unexpected Swooper flap sound played after the Swooper has gone far away
  • Fixed the vanilla bug: The Swooper has avoided being started to fly when inactive
  • Added the compatibility level command-line option separated from the speed-run modes (However, the speed-run mode will still override the compatibility level)
  • Added an option to enable the background game controller input handling
  • Portal warps have been allowed to be used for level entrances and level exits (Instant warps kept unsupported to avoid possible compatibility issues)
  • Added the cannon pipes that can shoot the player with a given speed
  • Added the workaround for custom background2-42 that has non-multiple 4 height (there are several custom sprites with the 3455 invalid height, they must be 3456)
  • Fixed an incorrect speed-run timer render at multiplayer mode
  • The controller state print has been replaced with a controller drawing to indicate the pressure state of buttons
  • Added the opt-in 2x scale down optimization for all textures to reduce the memory usage
  • Fixed the confusion when using the modern section auto-scroll settings when an auto-scroll fix was disabled
  • License was changed into GPLv3 (see details: https://github.com/Wohlstand/TheXTech/issues/162)
  • Enabled the work on the Android TV
  • Fixed the game start error after granting the storage permission on Android 9 and lower
  • Added an ability to change the look of the launcher screen on Android via gameinfo.ini (Change the logo, change the background, and set up the simple animation)
  • Added mask fallback support for custom graphics mask compatibility for old episodes
  • Fixed vanilla bug: Attempt 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
  • Make turn blocks (block-90) work as bricks when SMBX19 and lower-level file version is open
  • Added a workaround for the yellow platform (NPC-60) at "The Invasion 1" episode where it won't move at level42
  • Added Billy Gun (NPC-22) behavior compatibility with SMBX 1.2 and 1.1.x and older file formats
  • Added wireless game controllers battery status displaying when enabled at the settings
  • Added device battery status displaying at the right-top corner when enabled at the settings
  • Fixed an inability to save the game when game assets were stored at SD Card on an Android device
  • Added support for gamecontrollerdb.txt at the assets root and at the user directory
  • Fixed vanilla bug: World map music won't resume after going through the warp that leads to no music points or the music point with the same song
  • Fixed the improper custom music change when going through the warp on the world map
  • Fixed vanilla bug: Offscreen NPC can now respawn during the stopwatch freeze
  • Added Thwomp (NPC-37) behavior compatibility with SMBX 1.0.x
  • 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
  • Fixed a bug when a last world map music is not remembered when sound is disabled
  • Fixed the wrong restart place when running the lasagna of levels and the "restart level after death" option is enabled
  • Fixed the NPC logic distortion caused by early gfx update
  • Added an ability to customize an outro behavior using gameinfo.ini
  • Battle mode access can be disabled via gameinfo.ini
  • Two-player game mode access can be disabled via gameinfo.ini
  • The Scores of Power-Ups (NPC-9, NPC-14, NPC-34, NPC-169, NPC-170, NPC-182, NPC-183, NPC-184, NPC-185, NPC-249, NPC-250, NPC-264, NPC-277) can be changed via npc-X.txt
  • Added a fixed behavior for rail platforms and grinder (NPC-60, NPC-62, NPC-64, NPC-66, NPC-104, NPC-179). It can be enabled using new-added custom values
  • Fixed the collision bug when an attempt of the player with the shoe to jump up at the moving NPC being pushed into the wall, causes the player to go through the wall

Known issues
  • Affected by DrPepper Problem: The strong lag on slow devices when the level has any moving layers that move horizontally (by X-axis), mainly because the blocks search indexing gets completely disabled when the layer gets moved by X-axis. Todo: implement the QuadTree for all level objects and make sure they properly getting updated and found. (Issue #33, got been resolved at the `devel` branch by @ds-sloth)
  • Can't type any cheats on a mobile device without a USB-OTG keyboard yeh. Some levels (for example, the "Superb Demo 128" at "Prelude To The Stupid") do require the use of cheats for being passed, otherwise, these levels become unbeatable without a USB-OTG keyboard plugged. Todo: implement the calling of the software keyboard to allow running cheats on mobile devices. (Issue #61)

Showcases
Image

Image

Image

Image

All downloads at the official page of the project!

GitHub Release page: https://github.com/Wohlstand/TheXTech/releases/tag/v1.3.5.2

Tip: Please use the plain application package at the bottom of the page if you want to quickly update your existing engine without taking any assets updates (for example, if you has the modded assets you made yourself and you don't want to re-apply all your patches again).

Also, you may visit the official TheXTech documentation to learn more about the TheXTech:
https://github.com/Wohlstand/TheXTech/wiki
Image

+KZ
Close friend
Close friend
Avatar
+KZ
Close friend
Close friend
Reputation: 2
Posts: 89
Joined: 13 Dec 2018

Post #122by +KZ » 20 Oct 2021, 0:17

nice
:ɔ ଇ ଈ :Ɖ :ɛ
GOOGLE TRANSLATE

Image
Image
Image
Image
Image


SEE MY PROJECT
lol, it's a fake link

Yingchun Soul M
Viscount
Viscount
Avatar
Yingchun Soul M
Viscount
Viscount
Age: 25
Reputation: 98
Posts: 370
Joined: 14 Nov 2014
English Pronouns: he / him
Location: China
Website

Post #123by Yingchun Soul » 11 Nov 2021, 13:05

background-172.png
background-172.png (840 Bytes) Viewed 84120 times


Fixed SMB3 waterfall top. The waterfall top tile is actually one line colour transparency in original game.
迎春心情 (迎春心语 Alt.) in Chinese
Alt. nickname: "Elf of Happy and Love / 快乐爱的小精灵"

Check out my 2D Platform / TheXTech Assets:
Fairy Tale World
Nostalgic Paradise
Third Returns (Hiatus)

迎春花的精灵啊,请赋予我无尽的爱和指引,让每一座城在光明中重生,将大自然的力量和爱的力量集于一身吧!魔法凝结!

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #124by Wohlstand » 8 Feb 2022, 19:31

Some little showcase of LunaDLL Autocode and memory emulator working (will come up with the next stable release)
phpBB [youtube]

Original link: https://www.youtube.com/watch?v=aLsIvVpMkAY



YouTube link: https://www.youtube.com/watch?v=aLsIvVpMkAY
Bilibili link: https://www.bilibili.com/video/BV1cZ4y1f7dw
Image

Chanceux2 M
Our friend
Our friend
Chanceux2 M
Our friend
Our friend
Age: 13
Reputation: 7
Posts: 69
Joined: 10 Oct 2021

Post #125by Chanceux2 » 9 Feb 2022, 3:51

Spoiler
I just tested out 1.3.6 and I LOVE it so far. I cannot wait for 1.3.6 to release. I love how simplified my options button is now. 2 player game select is so much cooler looking. The stuff I don't like so far is the that when 1 player is selected and only one character can be used in a episode, it just blurs every other character and shows the options even though you can only pick one character. (Don't quote me on this) "Also maybe I'm just not playing around with the options that much but seeing that I have to use a second keyboard for a second player isnt really the best thing imo," but idk I haven't played around with it yet. Also, shoing the "(Player) is disconnected" message is fine if you are playing 2 Player. But doing that in Single PLayer is kinda pointless. I was making my new episode and testing a level and the message showed it. Other than those stuff everything just looks nicer. And yeah, I know it's just a dev build. But I hope these are changed in the final build imo.

ds-sloth
Advanced Moderator
Advanced Moderator
ds-sloth
Advanced Moderator
Advanced Moderator
Reputation: 0
Posts: 4
Joined: 20 Feb 2022

Post #126by ds-sloth » 20 Feb 2022, 21:30

Chanceux2 wrote:
Spoiler
I just tested out 1.3.6 and I LOVE it so far. I cannot wait for 1.3.6 to release. I love how simplified my options button is now. 2 player game select is so much cooler looking. The stuff I don't like so far is the that when 1 player is selected and only one character can be used in a episode, it just blurs every other character and shows the options even though you can only pick one character. (Don't quote me on this) "Also maybe I'm just not playing around with the options that much but seeing that I have to use a second keyboard for a second player isnt really the best thing imo," but idk I haven't played around with it yet. Also, shoing the "(Player) is disconnected" message is fine if you are playing 2 Player. But doing that in Single PLayer is kinda pointless. I was making my new episode and testing a level and the message showed it. Other than those stuff everything just looks nicer. And yeah, I know it's just a dev build. But I hope these are changed in the final build imo.

Hi Chanceux2, I'm the main developer for the controls update. First off, I'm very glad you like the update overall! Thanks for the comments. I'm happy to talk about them:

> 1 Player with blocked characters
Are you thinking the disabled players should just be hidden (like SMBX)? That's a good point. I'd want to get a few more opinions on this but I'm open to coding this if the community prefers it.

> "Second keyboard"
2 player does work fine with a single keyboard. Were you confused by the title "Keyboard 2"? Right now I use the name of the controller, plus a number N, for the Nth profile for that controller. Would it be better to use the pattern "Keyboard P2" instead?

> testing a level
When you launch the game, it considers there to be no players connected, and then they are normally connected during the player select process on the main menu. If we start the game by testing a level, then it needs to connect a controller, and I think it's the most user-friendly to tell the player which controller was connected. For this point, would you be more happy if it didn't have the "P1 is disconnected" message at the beginning? I would still want to show the "P1 connected with Keyboard (Keyboard 1)" message when the player does connect a controller, so it's clear which device the player is using.

Olhi
Contributor
Contributor
Avatar
Olhi
Contributor
Contributor
Reputation: 13
Posts: 38
Joined: 7 Apr 2020

Post #127by Olhi » 22 Feb 2022, 1:12

Chanceux2 wrote:The stuff I don't like so far is the that when 1 player is selected and only one character can be used in a episode, it just blurs every other character and shows the options even though you can only pick one character.

ds-sloth wrote:> 1 Player with blocked characters
Are you thinking the disabled players should just be hidden (like SMBX)? That's a good point. I'd want to get a few more opinions on this but I'm open to coding this if the community prefers it.

I think what Chanceux means, in the original SMBX, when only one character was available, the Character Selection screen was skipped altogether.

However, if I remember correctly, Abstract Controls depends on the Character Selection Screen. We also have multiple discussions going on about making characters unlockable (one example at Github) and allowing to choose character costumes (#261 & #278), which will require it, too.

Imo displaying the names greyed out is preferable to hiding them. It's not like they are a secret anyway, and it gives each character their dedicated space in the selection, which I find quite elegant and intuitive.

EnzoTelarolli
Passerby
Passerby
EnzoTelarolli
Passerby
Passerby
Reputation: 0
Posts: 1
Joined: 30 Mar 2020

SMBX ThexTech

Post #128by EnzoTelarolli » 12 Mar 2022, 19:47

the creator of the ThexTech smbx project could correct the black borders in the corners of the screen as it lowers the image quality and adding a level editor would be very useful as well.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #129by Wohlstand » 13 Mar 2022, 18:01

EnzoTelarolli wrote:the creator of the ThexTech smbx project could correct the black borders in the corners of the screen as it lowers the image quality and adding a level editor would be very useful as well.

The multi-resolution system and minimalistic editor were made by ds-sloth at the "devel" branch of the project and they are awaiting being backported into mainstream for the next release ;-)
Image

Chanceux2 M
Our friend
Our friend
Chanceux2 M
Our friend
Our friend
Age: 13
Reputation: 7
Posts: 69
Joined: 10 Oct 2021

Post #130by Chanceux2 » 17 Apr 2022, 20:16

So recently, I picked up an old Red New 3ds xl and I hacked it. I figured out how to insert games so the first thing I did was get SMBX. (Paying SMBX on a 3DS feels very very weird.)

I'll still stick to the PC version since there is big audio lag even on a N3DS. So I'm just gonna ssume it's worse with a O3DS. Nevermind about that, i didn't know there was a O3DS Clock and a N3DS Clock. It was set to O3DSby default. Just had to change it and everything was fine other than a little bit a audio lag. Anyway, can I test the 3DS version of TheXTech? I really love 3DS's and I absolutely LOVE homebrew.

ds-sloth
Advanced Moderator
Advanced Moderator
ds-sloth
Advanced Moderator
Advanced Moderator
Reputation: 0
Posts: 4
Joined: 20 Feb 2022

Post #131by ds-sloth » 24 Apr 2022, 23:20

Thanks for your interest in my 3DS port, @Chanceux2! Right now the "working" 3DS version is still the forked version, TheXTech3DS, but I'll be sure to ping you when we have a working version based on the main repository code.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

TheXTech v1.3.6: LunaDLL scripts, better controller support, etc.

Post #132by Wohlstand » 12 Sep 2022, 23:34

TheXTech v1.3.6: LunaDLL scripts, better controller support, etc.
----------------------------------------------------------------------------------------------------------------------------------
We worked on this update long and hard, and now we're ready to present a bunch of new features and fixes!

Note: To get the full power of TheXTech while making new projects, the special Moondust Devkit configuration package is suggested (the latest laboratory Moondust Devkit required until the next stable devkit version 0.4.3.1 release).

Note 2: In order to gain access to all the new features, you should upgrade your assets package. Old ones will remain functional but do not contain the additions needed for features like new sound effects, the built-in editor, additional meta-signs, etc.

Note 3: Some options of the compat.ini file were renamed in order to get rid of references to proprietary content. We highly recommend renaming these fields at your episodes as soon as possible. (Details at the wiki)

Significant changes
  • The controllers' support has been reworked and improved: multiple profiles, more than one button/axes assigned to the same button, editable hotkeys, intuitive controller assignment between players on cooperative/battle games, and the touchscreen controller's general improvement (users can now tweak the touchscreen controller's layout for their convenience). The touchscreen controller now also works on any non-Android platforms (including Windows and Linux devices that feature a touchscreen).
  • Added real-time per-section SPC-like echo and reverb effects which can be used by episode creators to improve the atmosphere on their levels.
  • Added experimental built-in Editor, made for working on levels and episodes on mobile devices and consoles. Can be used on desktop platforms as well.
  • Introducing native support for LunaDLL Autocode (LunaScript) via the memory emulator, allowing you to play more old episodes on TheXTech even on non-x86 processors. Episodes and packed games (such as A2XT, Episode 1: Analog Funk) now officially work on the TheXTech engine.
  • Introducing the quad-tree optimisation for blocks which resolves a very old performance problem caused by horizontal layer motion.

Changes for 1.3.6
  • Added an ability to toggle drawing of the HUD and other on-screen metadata using the F1 key (@Wohlstand)
  • Added an ability to type cheats on the touchscreen using a special new cheats key (@Wohlstand, @ds-sloth)
  • Added native support for LunaDLL Autocode script language (@Wohlstand)
  • Added fail-counter feature (keeps counting deaths per game save) (@Wohlstand)
  • Reworked controller support (@ds-sloth)
  • Touchscreen support for non-Android platforms (@ds-sloth)
  • Added the ability to save multiple keyboard profiles (@ds-sloth)
  • New multiplayer start screen (@ds-sloth with design input from @0lhi)
  • Added controller disconnect recovery screen (@ds-sloth)
  • Ground pound by alt run is now a per-controller setting (@ds-sloth)
  • Added an ability to add/drop the second player from the pause menu (@ds-sloth)
  • Added the support for real-time audio effects such as reverb and SPC echo. Sounds.ini can configure them for each level section (@Wohlstand)
  • Performance improvements for showing, hiding and moving layers (@ds-sloth)
  • Reduced game object memory footprint (@ds-sloth)
  • Performance improvements when run on slow filesystems (@ds-sloth)
  • Fixed unexpected music that got started after the level got entered too quick from the world map (@Wohlstand)
  • Fixed the vanilla bug: a Player can get stuck in the pipe when entering it being a fairy (@Wohlstand)
  • Added an option to enable fast walking on the world map (@ds-sloth, @Wohlstand)
  • Added an ability to customize UI/common assets from the episode and level sides (@Wohlstand)
  • Added a blink effect at speedrun timer on level/episode completion (@Wohlstand)
  • Added an in-game editor based on the original game's editor code (requires EditorIcons.png asset) (@ds-sloth)
  • Added config option to show the current episode's title onscreen (@ds-sloth)
  • Fixed the clipped render of the Roto-Disk's effect (@Wohlstand)
  • Fixed the lock/star sign behaviour at locked two-way warps: now they work correctly at the opposite side (@Wohlstand)
  • Added an ability to set a different path for the user directory by command line argument (@Wohlstand)
  • Blocked an ability to start the game with no episodes or battle levels available in the list and prevented several issues with this (@Wohlstand)
  • Added option to disable or always perform 2x texture scale down optimization (@ds-sloth)
  • Added the ability to have multiple intro levels per assets pack (if the introset directory exists and it contains at least one level file, they will be selected randomly every time when the main menu opens) (@Wohlstand)
  • Added game selection menu into Android launcher: every browsed assets directory will be remembered and can be accessed quickly using the new menu (@Wohlstand)
  • Added the individual sound for Ludwig von Koopa's death (@Wohlstand)
  • Added the individual sound for Larry Koopa's death and shell spinning after stomp (@Wohlstand)
  • Fixed an improper new (when specific compatibility option is not disabled) behaviour of the Skull Raft when the head segment impacts a wall but loses a floor at the same time, causing the following segments to suspend forever (@Wohlstand)
  • Fixed the issue of a possible fall through the floor if walking point-blank to a block that had an extracted bonus and another solid block placed under it (does not happen if the "fix-player-downward-clip" option was disabled) (https://github.com/Wohlstand/TheXTech/issues/401) (@Wohlstand)
  • Removed the "require-ground-to-enter-warps" compat.ini option as redundant: there is the native option of LVLX and 38A-LVL level formats to enable this behaviour. (@Wohlstand)
  • Some options of the compat.ini have been renamed (for backward compatibility, there are aliases kept for now) (@Wohlstand)
  • Added the individual sound for Link's iceball shoot (@Wohlstand)


Showcases
Image

Image

Image

Image

Image

All downloads at the official page of the project!

GitHub Release page: https://github.com/Wohlstand/TheXTech/releases/tag/v1.3.6

Tip: Please use the plain application package at the bottom of the page if you want to quickly update your existing engine without taking any assets updates (for example, if you has the modded assets you made yourself and you don't want to re-apply all your patches again).

Also, you may visit the official TheXTech documentation to learn more about the TheXTech:
https://github.com/Wohlstand/TheXTech/wiki
Image

knuckles-19
Passerby
Passerby
knuckles-19
Passerby
Passerby
Reputation: 0
Posts: 1
Joined: 17 Apr 2023
English Pronouns: He/Him

Post #133by knuckles-19 » 17 Apr 2023, 4:32

ds-sloth wrote:Thanks for your interest in my 3DS port, @Chanceux2! Right now the "working" 3DS version is still the forked version, TheXTech3DS, but I'll be sure to ping you when we have a working version based on the main repository code.

Hi! I was looking to get back into smbx (played it as a kid) and I just saw that it's possible to use on the 3DS. Were you able to get a working version by any chance?

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #134by Wohlstand » 17 Apr 2023, 16:42

knuckles-19 wrote:Hi! I was looking to get back into smbx (played it as a kid) and I just saw that it's possible to use on the 3DS. Were you able to get a working version by any chance?

Hello!
I am glad you paid attention on this. The current public version is very early alpha version, there is a better and newer version in active development. You can get it at the Downloads lost of TheXTech, see "Super Mario Bros. X" game in the list, there is a 3DS version will be providen.
Image

adamhelix
Passerby
Passerby
adamhelix
Passerby
Passerby
Reputation: 0
Posts: 2
Joined: 28 May 2023
English Pronouns: he/him

Cheats on smbx for 3ds

Post #135by adamhelix » 28 May 2023, 14:18

I recently installed smbx on my 3ds and want to know if theres any way to use cheat codes like on pc. I know that i can use an external keyboard to use them on android but i dont know how on 3ds. Thanks in advance.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #136by Wohlstand » 28 May 2023, 18:31

adamhelix wrote:I recently installed smbx on my 3ds and want to know if theres any way to use cheat codes like on pc. I know that i can use an external keyboard to use them on android but i dont know how on 3ds. Thanks in advance.

At the latest dev build, you can assign the "cheats" button at controller setup, and you will open the dialogue where you can type a cheat code.
Image

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

TheXTech v1.3.6.1-beta: Internationalisation, OpenGL, etc.

Post #137by Wohlstand » 3 Sep 2023, 18:55

The beta version of TheXTech 1.3.6.1-beta has been released!

We worked long and hard on this update, however, we still need to finish some small things until we can release a stable version. This update features a big set of bugfixes and improvements.

Note: To get the full power of TheXTech while making new projects, the special Moondust Devkit configuration package is suggested (the latest laboratory Moondust Devkit required until the next stable devkit version 0.4.3.1 release).

Note 2: In order to gain access to all the new features, you should upgrade your assets package. Old ones will remain functional but do not contain the additions needed for features like new sound effects, the built-in editor, additional meta-signs, etc.

Note 3: Some options of the compat.ini file were renamed in order to get rid of references to proprietary content. We highly recommend renaming these fields at your episodes as soon as possible. (Details at the wiki)

Note 4: If you want to enable multi-language system, you are required to install new assets packages (you need to have `fonts` and `languages` sub-directories in your assets package).

Most important changes
  • Added real kind of internationalisation: fonts are able to print non-ASCII, TTF support, and multi-languages support. The game since now can be translated into other languages. This update makes TheXTech being a first branch of SMBX that features native multi-language support. While SMBX being English-only all the time, gives a lot of limitations to the whole world: a lot of people just don't know English, and the multi-languages support will get them to better understand the game and much easier get into it!
  • Experimental OpenGL support that allows bitmask render to bring back the support for colour tricks that were used at several vanilla levels and episodes and packed games (for example, "Reign of the Gatekeepers").
  • Added Homebrew Switch support. The game is now able to work on hacked Switch consoles or on emulators such as Yuzu.
  • Updated SDL2 and MixerX libraries. There are more game controllers got supported, and the support of existing controllers had been fixed somewhere. Now the game supports new music formats such as WavPack (wv) and PXTone (ptcop and pttune).
  • Added opt-in Discord Rich Presense support for these players who want to tell more about the game that they play. It's disabled by default, and you can enable it by editing of the settings/thextech.ini file.
  • The keyhole framerate fix now enabled permanently. That means, if you run an episode for speedrun, pay attention that keyhole exit will add 192 ticks instead of 300 as it was originally. The vanilla game used a different frame rate (100fps instead of 65fps) during keyhole exits which led to an inflated In-Game Time.
  • Various in-game editor features including the Magic Block automatic tiling mode, a first for the SMBX ecosystem!
  • Performance improvements that lower the game logic's CPU consumption on low-end systems.

Read full changelog at the "changelog.txt" file in the packages or in the source code archives.

Showcases
Image

Image

Image

Image

Image

GitHub Release page and download links for this version: https://github.com/Wohlstand/TheXTech/releases/tag/v1.3.6.1-beta

All STABLE downloads at the official page of the project!

Tip: Please use the plain application package at the bottom of the page if you want to quickly update your existing engine without taking any assets updates (for example, if you has the modded assets you made yourself and you don't want to re-apply all your patches again).

Also, you may visit the official TheXTech documentation to learn more about the TheXTech:
https://github.com/Wohlstand/TheXTech/wiki
Image

RunninPigeon M
Citizen
Citizen
Avatar
RunninPigeon M
Citizen
Citizen
Age: 17
Reputation: 0
Posts: 6
Joined: 27 Nov 2021
English Pronouns: He/Him
Location: World 3 (Hawaii)

Post #138by RunninPigeon » 22 Sep 2023, 3:03

I'm the one who worked on this!!!!!!!!!!
Both a fan of 2 Cartoon Blue Birds!

Userbars:
Image
Image
Image



Image

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 31
Reputation: 507
Posts: 1825
Joined: 15 Feb 2014
English Pronouns: he/him
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

TheXTech v1.3.6.1: Internationalisation, OpenGL, etc.

Post #139by Wohlstand » 14 Oct 2023, 22:10

The new stable version of TheXTech 1.3.6.1 has been released!

We worked on this update long and hard, and now we're ready to present a bunch of new features and fixes! This is a checkpoint release after which there are major works will be started. But don't worry, if any issue occurs with this version, hotfixes will be released.

Note: To get the full power of TheXTech while making new projects, the special Moondust Devkit configuration package is suggested (the latest laboratory Moondust Devkit required until the next stable devkit version 0.4.3.1 release).

Note 2: In order to gain access to all the new features, you should upgrade your assets package. Old ones will remain functional but do not contain the additions needed for features like new sound effects, the built-in editor, additional meta-signs, etc.

Note 3: Some options of the compat.ini file were renamed in order to get rid of references to proprietary content. We highly recommend renaming these fields at your episodes as soon as possible. (Details at the wiki)

Note 4: If you want to enable multi-language system, you are required to install new assets packages (you need to have `fonts` and `languages` sub-directories in your assets package).

Most important changes
  • Added real kind of internationalisation: fonts are able to print non-ASCII, TTF support, and multi-languages support. The game since now can be translated into other languages. This update makes TheXTech being a first branch of SMBX that features native multi-language support. While SMBX being English-only all the time, gives a lot of limitations to the whole world: a lot of people just don't know English, and the multi-languages support will get them to better understand the game and much easier get into it!
  • Experimental OpenGL support that allows bitmask render to bring back the support for colour tricks that were used at several vanilla levels and episodes and packed games (for example, "Reign of the Gatekeepers").
  • Added Homebrew Switch support. The game is now able to work on hacked Switch consoles or on emulators such as Yuzu.
  • Updated SDL2 and MixerX libraries. There are more game controllers got supported, and the support of existing controllers had been fixed somewhere. Now the game supports new music formats such as WavPack (wv) and PXTone (ptcop and pttune).
  • Added opt-in Discord Rich Presense support for these players who want to tell more about the game that they play. It's disabled by default, and you can enable it by editing of the settings/thextech.ini file.
  • The keyhole framerate fix now enabled permanently. That means, if you run an episode for speedrun, pay attention that keyhole exit will add 192 ticks instead of 300 as it was originally. The vanilla game used a different frame rate (100fps instead of 65fps) during keyhole exits which led to an inflated In-Game Time.
  • Various in-game editor features including the Magic Block automatic tiling mode, a first for the SMBX ecosystem!
  • Performance improvements that lower the game logic's CPU consumption on low-end systems.

Read full changelog at the "changelog.txt" file in the packages or in the source code archives.

Showcases
Image

Image

Image

Image

Image

All downloads at the official page of the project!

GitHub Release page: https://github.com/Wohlstand/TheXTech/releases/tag/v1.3.6.1

Tip: Please use the plain application package at the bottom of the page if you want to quickly update your existing engine without taking any assets updates (for example, if you has the modded assets you made yourself and you don't want to re-apply all your patches again).

Also, you may visit the official TheXTech documentation to learn more about the TheXTech:
https://github.com/Wohlstand/TheXTech/wiki
Image

romerofan0162
Passerby
Passerby
romerofan0162
Passerby
Passerby
Reputation: 0
Posts: 1
Joined: 27 Oct 2023

SMBx Version 1.3.7

Post #140by romerofan0162 » 27 Oct 2023, 6:45

Well, it's looking better with each update. I am so excited for version 1.3.7 (with widescreen support). Any idea when it'll be out? :)


Return to “Engine Development”

Who is online (over the past 5 minutes)

Users browsing this forum: 5 guests