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

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

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
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 for 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 PGE 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 make 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), 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 dealing with the old and inconvenient VB6 environment.


What's the future of PGE Engine as TheXTech now exists?
I'll continue the development of the PGE Engine as I still have to pass the second goal of the PGE Project.
Since the foundation, PGE 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 opensource cross-platform software. PGE Engine will be used to pass the second goal - giving a toolkit for new games. Unlike TheXTech, PGE Engine gives full flexibility that allows anyone to build something new from scratch without inheriting an old game base. However, TheXTech is needed for PGE 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 PGE 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 sounds 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/Wohlstand/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 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/Wohlstand/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.

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).


Changes for 1.3.5.1 and 1.3.5
Changes for 1.3.5.1
  • Episodes and battle levels lists now loading in the separated thread with a progress showing
  • Fixed the regression that caused world map music not to be switched properly
  • Added an ability to control the intro scene activity on the level by `gameinfo.ini`: set maximum number of running players, and enable/disable the activity at all
  • Fixed an inability to copy the game save based on old files at episode directory
  • Fixed the vanilla bug: incorrect blooper effect when stomped (needed an npc-*.txt with the "jumphurt=0" flag being set)
  • Changed the default compat.ini value "fix-autoscroll-speed" into "false" to prevent possible glitches from invalid setup given by several old levels
  • The "Checkpoint" sound will be played when selecting the "Save and Continue" menu item at the pause menu
  • Fixed a minor glitch at the game save a copy and erase menu while moving the mouse under menu block
  • Fixed the bullet bill getting stuck after it got unfrozen (Thanks to the @ds-sloth for the contribution!)
  • Updated an inter-process protocol with adding new commands
  • Fixed the vanilla bug: The dragon coin has avoided being turned into the block by the P-Switch activation

Changes for 1.3.5
  • Fixed the gamepad control stuck because of axes returned value that doesn't equal the initial state on some devices
  • Fixed the invalid conversion of old sprites with a mask that is smaller than the front
  • Implemented usage of the SDL_GameController with some extras like using the rumble and the battery status (Render of the status is not implemented yet)
  • Player now can quit the credits screen by pressing the Start button on the gamepad
  • Fixed the glitched rendering of the first frame at the main menu and the world map when frame-skip is enabled
  • Every gamepad model will keep its individual settings per player
  • Added the "Reset to default" menu item to reset controls
  • Resolved the slow work of the world map on weak devices
  • Added the performance debug printing that you can activate by the F3 key
  • Automatically select the gamepad on startup if the user didn't manually set up the keyboard usage
  • Added the ability of the hot connection and disconnection of game controllers
  • Control mappings have been moved into the "controls.ini" to keep the "thextech.ini" file being human-friendly
  • Swooper can play the flap sound if presented at the assets pack
  • Iceball may have the individual shoot sound of sounds.ini enables that
  • Fixed an unexpected ability of Peach to spin-jump from off vines and on pressing of the ALT-JUMP while the JUMP key is held
  • Fixed the GFX shaking of the upside-down piranha plants when they got customized in some cases
  • NPC freezing sound got an individual sound instead of the shell hit
  • Frozen NPC breaking got an individual sound
  • Added an ability to put the silence instead of the actual sound file by specifying the "silent=true" field instead of the "file=..."
  • Thwomps will slightly shake the screen on their fall
  • Yoshi's ground pound will slightly shake the screen
  • Sprout vine from blocks got an individual sound
  • Fixed an incorrect word wrapping at message boxes
  • Fixed the vanilla GFX bug: the thwomp's ground pound dirt effect being improperly aligned
  • Bowser III'rd will shake the screen on his ground pound
  • Fixed the vanilla bug: Link may die when attempting to use the Clown Car being in a fairy form, and when flying up on the Clown Car while any vines behind him
  • Avoided the ability to switch the playable character by the Clown Car at the top of a player switch block
  • Added an ability to restore old checkpoints behavior of the SMBX 1.3 using the "compat.ini" file
  • Fixed the vanilla GFX bug: an incorrect Link's alignment at the Clown Car after being transformed from anybody who rides Yoshi
  • Fixed the skull raft getting stuck at the ceiling slope blocks
  • Fixed the vanilla GFX bug: the unexpected water splash effect appearance at BGOs
  • Fixed the inability to set up the jump button on gamepads in some conditions
  • Fixed the vanilla bug: inability to set the autoscrolling for any non-zero section
  • Added the support for the simple-style per-section autoscrolling setup from the SMBX-38A specification
  • Fixed the vanilla crash when NPC being located far off the screen, tries to find blocks
  • Added an ability to copy and delete game saves from the game menu
  • Fixed the missing "Game Beaten" flag while loading the game save


For Windows (XP/Vista/7/8/8.1/10+):
ImageImage
Downloads for Windows
- Download for 64-bit (modern platforms)
- Download for 32-bit (old platforms and 32-bit operating system installs)
- Download for ARM64 (for Windows-based tablets that use an ARM processor, or other compatible devices)
Note: To unpack 7z archives you need to use the 7-zip tool (it's free!). For ARM devices try this version of 7-zip.

For macOS (10.11 is minimal, if not works even on 10.11, report me please. The AppleSilicon version requires the macOS 11.0):
Image
Downloads for macOS
- Download DMG image, universal for both Intel and Apple Silicon
Note: because of macOS specifics, using the game here is different than other systems: after install, run a game,
and then, to add your custom episodes, look into your home directory and find the "TheXTech Episodes" folder, the "worlds" and "battle" inside is for your own stuff!
To replace default media, look inside the bundle and find the "Content/Resources/assets" folder!
Caution 1: bundle is unsigned, make sure you know how to deal with a Gatekeeper to make able to use this! On Catalina it may not start the first time after Gatekeeper's question, try to run the game again!
Caution 2: On Apple Silicon (M1) devices, you will need to run the xattr -rd com.apple.quarantine "Super Mario Bros. X.app" from your terminal at the applications directory to get the game work.

For Linux distros (x86_64 and i386):
ImageImage
Downloads for Linux
- Download for Ubuntu 20.04 64-bit and compatible
- Download for Ubuntu 18.04 64-bit and compatible
- Download for Ubuntu 16.04 64-bit and compatible
- Download for Ubuntu 16.04 32-bit and compatible
Note: There are static portable builds that should work almost everywhere. If you run a different Linux distro than Ubuntu, you may use the Ubuntu 16.04 version for the game. The confirmed work on the Debian 10, on the OpenSUSE, on the Fedora, on the CentOS. Also, the game could work on ArchLinux and Monjaro. If all builds won't work on your distro, feel free to report to me and try to compile the game from the sources to get it to work on your side. Right now there are x86_64 and 32-bit x86 builds that were made, ARM wasn't built by the CI yet (probably I'll try to set up the CI to produce such builds).

For Android:
Image
Downloads for Android
- Download for Android (Minimum version is 4.1)
Note: this is the plain runtime package that doesn't include any game assets. You should download the SMBX assets pack archive and unpack it into any convenient place. On the first run (or at the Settings), you should select the directory that contains your unpacked assets. That directory will serve the same as the SMBX game directory on the desktop versions. You can easily add more episodes to it by unpacking archives into the "worlds" directory in the same way as on desktop versions. At the Settings, you can switch between different game asset directories that allow you to play different games (such as "Adventures of Demo") by the same engine.

WebAssembly (Play game in the browser):
Image
Web version
- Play SMBX in the browser NOW! (Note, the game may work slow from some places like China, please ask people for any local mirrors, or get the self-hosted version below).
- Download the Self-hosted version of the game if you want to upload the game copy on your WEB-server and make the game get better availability.
Note: Adding custom episodes and replace default music/sounds/graphics require you to build the game from the sources with giving of your assets directory. You can find the detailed manual on how to build the web version of the game here.

Plain desktop runtimes
ImageImageImage
There are packages that contain the runtime engine binary only. Use this to update your existing game without re-downloading game assets. Especially if you did your own remix of the assets and you don't want to re-remix them again.

Plain runtime downloads
Windows:
Image

Linux:
Image

macOS:
Image
This is the "Game template", the app bundle that contains no assets. You need to put the game assets into the "TheXTech.app/Content/Resources/assets" directory inside of the bundle, and then, edit "Content/Info.plist", and specify the value for the "CFBundeName" field to make it not be "Not named application" in the task manager.)



The full C++ source code repository:
Image
- https://github.com/Wohlstand/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: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #61by Wohlstand » 28 Jun 2020, 23:52

Ah, yeah, I also had to use SimpleScreenRecorder for some moment until OBS became crossplatform.

Olhi
Good citizen
Good citizen
Avatar
Olhi
Good citizen
Good citizen
Reputation: 14
Posts: 33
Joined: 7 Apr 2020

Post #62by Olhi » 10 Jul 2020, 4:47

I have a request for a quality of life feature: A hotkey for opening the current level in the PGE Editor. The path to the executable could be added to thextech.ini.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

New 1.3.2.1 release!

Post #63by Wohlstand » 12 Jul 2020, 0:44

Hello!

This is a small bugfix release:

Changes for 1.3.2.1
  • Reworked joysticks support
  • Added a workaround for case-sensitive file systems
  • The 1up sound now playing multiple times if the player has got more than 1 life (for example, a 3-up moon)
  • Fixed a broken work of magic potion warp packed inside of a grass container
  • Fixed a minor inaccuracy of the moving layers system
  • Fixed an incorrect process of blocked playable characters while loaiding the episodes list

All download links at the main post.

+KZ
Our friend
Our friend
Avatar
+KZ
Our friend
Our friend
Reputation: 6
Posts: 73
Joined: 13 Dec 2018

Post #64by +KZ » 12 Jul 2020, 5:33

Captura de pantalla 2020-07-11 a las 10.32.54 p.m..png
Captura de pantalla 2020-07-11 a las 10.32.54 p.m..png (11.56 KiB) Viewed 8152 times


oh, i see you changed the icon and name to smbx icon and name
ImageImageImage ImageImage



:ɔ ଇ ଈ چ :Ɖ :ɛ
GOOGLE TRANSLATE

Userbars
my liking for user bars came back
Image
ImageImage
Image




SEE MY PROJECT

lel, is a fake link

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #65by Wohlstand » 12 Jul 2020, 13:41

+KZ wrote:oh, i see you changed the icon and name to smbx icon and name
Icon wasn't changed, but the name of bundle was been simplified.

+KZ
Our friend
Our friend
Avatar
+KZ
Our friend
Our friend
Reputation: 6
Posts: 73
Joined: 13 Dec 2018

Post #66by +KZ » 12 Jul 2020, 19:43

Wohlstand wrote:Icon wasn't changed.




Wut¿, So since when is the mushroom instead of the gears? I lost something :(?
ImageImageImage ImageImage



:ɔ ଇ ଈ چ :Ɖ :ɛ
GOOGLE TRANSLATE

Userbars
my liking for user bars came back
Image
ImageImage
Image




SEE MY PROJECT

lel, is a fake link

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #67by Wohlstand » 12 Jul 2020, 20:32

+KZ wrote:Wut¿, So since when is the mushroom instead of the gears? I lost something :(?
Gears icon is on Windows builds and on executable itself. The SMBX icon is a part of assets, not a part of engine itself.

+KZ
Our friend
Our friend
Avatar
+KZ
Our friend
Our friend
Reputation: 6
Posts: 73
Joined: 13 Dec 2018

Post #68by +KZ » 12 Jul 2020, 21:10

Wohlstand wrote:
+KZ wrote:Wut¿, So since when is the mushroom instead of the gears? I lost something :(?
Gears icon is on Windows builds and on executable itself. The SMBX icon is a part of assets, not a part of engine itself.

ah, i understand
ImageImageImage ImageImage



:ɔ ଇ ଈ چ :Ɖ :ɛ
GOOGLE TRANSLATE

Userbars
my liking for user bars came back
Image
ImageImage
Image




SEE MY PROJECT

lel, is a fake link

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #69by Wohlstand » 18 Jul 2020, 17:38

Small news:

About incorrect effect sizes that was been reported by several people, it was a really a bug. I though it was same in vanilla, however, once upon one of users have shown me that it's correct in vanilla, I got understand that I was not right. I had to fix this bug yesterday. I'll post the update soon which contains this fix.

Added after 3 hours 42 minutes:
1.3.2.2 release has been posted as a hotfix!

Olhi
Good citizen
Good citizen
Avatar
Olhi
Good citizen
Good citizen
Reputation: 14
Posts: 33
Joined: 7 Apr 2020

Post #70by Olhi » 23 Jul 2020, 16:11

I encountered an issue regarding hub worlds. While it's a huge convenience in most episodes that the last level location is remembered, it breaks Mario & Luigi's Marathon:

https://i.imgur.com/vuuPPR5.mp4

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #71by Wohlstand » 23 Jul 2020, 16:32

Olhi wrote:https://i.imgur.com/vuuPPR5.mp4
Lol, looks like a sudden trap :biggrin:

However, a think: if you playing a level, and then you finishing the level, player by default gets the same door that was entered on the hub (except custom warps are was made to enforce player to enter the hub at the different point). Technically, the fix is simple by adding of an event axe to here. Or, I have a little idea of a compatibility mode like GZDoom does: for certain cases and for specific WAD files, it disables/enables certain bugs and features, required for the best experience of specific game. Otherwise, another and looks like better idea: remember the last warp by the only one condition: the level was exited by a normal way and not aborted by a game quit.

Olhi
Good citizen
Good citizen
Avatar
Olhi
Good citizen
Good citizen
Reputation: 14
Posts: 33
Joined: 7 Apr 2020

Post #72by Olhi » 23 Jul 2020, 17:51

Wohlstand wrote:Or, I have a little idea of a compatibility mode like GZDoom does: for certain cases and for specific WAD files, it disables/enables certain bugs and features, required for the best experience of specific game.

This sounds like the best solution to me. :yes: There may very well be other issues in the future that end up requiring a compatibility mode, so it would be wise to set up a page for that in the settings. This could also be occasion for optional features like Save & Quit in levels, and allowing players to choose between the Classic or Updated Purple Yoshi controls. I feel your idea to extend the Ground Pound to other Yoshi's should be optional, too.

Wohlstand wrote:Otherwise, another and looks like better idea: remember the last warp by the only one condition: the level was exited by a normal way and not aborted by a game quit.

Nah. :no: I like the way it is now. But this is also something that could be integrated into the compatibility settings. The more player choice, the better.

EDIT: Rethinking it, including the third option seems like a bad idea. Neither would it repair the unique hub of M&L's Marathon, nor would it offer any apparent benefit compared to the current system. It'd just needlessly complicate things.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #73by Wohlstand » 30 Jul 2020, 23:43

Sent a next bugfix release, 1.3.2.3:

-Fixed a SIGFPE crash, caused by an attempt to load some custom effects
-Resolved the inability to grab vegetables normally, caused by an incorrect porting of logical expression

+KZ
Our friend
Our friend
Avatar
+KZ
Our friend
Our friend
Reputation: 6
Posts: 73
Joined: 13 Dec 2018

Post #74by +KZ » 1 Aug 2020, 4:22

Wohlstand wrote:For macOS (10.12 is minimal, if not works even on 10.12, report me please):

this can run on macos 10.11 I think it's time to update this post :T
ImageImageImage ImageImage



:ɔ ଇ ଈ چ :Ɖ :ɛ
GOOGLE TRANSLATE

Userbars
my liking for user bars came back
Image
ImageImage
Image




SEE MY PROJECT

lel, is a fake link

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #75by Wohlstand » 1 Aug 2020, 9:41

+KZ wrote:this can run on macos 10.11 I think it's time to update this post :T
Oh, yeh, thanks for a point, gonna to fix this...

Davfar Gamers
Citizen
Citizen
Avatar
Davfar Gamers
Citizen
Citizen
Reputation: 1
Posts: 5
Joined: 9 Jul 2019
Website

Query

Post #76by Davfar Gamers » 28 Aug 2020, 14:07

Query, can you play the episodes of SMBX 1.4.5 and SMBX2 in this version ?.

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #77by Wohlstand » 29 Aug 2020, 0:33

Davfar Gamers wrote:Query, can you play the episodes of SMBX 1.4.5 and SMBX2 in this version ?.
You can play them if they don't overusing exclusive features of every engine. There only next extra features which will work on XTech:
- per-episode and per-level music.ini and sounds.ini to redefine sounds
- PNG graphics as custom resources
- any non-mp3 musics (the full list of music formats which can be used with a game: https://wohlsoft.ru/pgewiki/SDL_Mixer_X#Music_Formats)
- warp-enter event (SMBX-38A exclusive feature)
- multiple check-points as npc-192, on SMBX2 they are still be shitty and also marked as "deprecated". In SMBX-38A and TheXTech they work properly as multi-points.
- vertical wrap on sections
- have more than 21 section on a level (LVLX format only, PGE exclusive feature, supported by PGE Engine and TheXTech)
- on world maps, musicboxes with custom music (WLDX or 38A-WLD only)
------
SMBX2 exclusive and SMBX-38A exclusive features will not work on XTech in most. Scripts aren't supported yet. All SMBX64-compatible levels and episodes will work on TheXTech properly as on original SMBX 1.3 game.

Yidaozhan Ya M
Passerby
Passerby
Avatar
Yidaozhan Ya M
Passerby
Passerby
Reputation: 0
Posts: 2
Joined: 12 Sep 2020
Tencent QQ

Post #78by Yidaozhan Ya » 12 Oct 2020, 17:55

Does TheXTech have a frame skip feature? If so, how do I turn it on?
TheXTech does have a higher frame rate than the vanilla SMBX, but the vanilla SMBX can skip frames, which allows the vanilla SMBX to run at full 18-20 FPS in the ExaGear emulator on my Android device, while the TheXTech slows down.
If TheXTech were to add frame skipping, playing SMBX on an Android phone (By using ExaGear Emulator) would be just around the corner! XD

Wohlstand M
Topic author, Lead Developer
Lead Developer
Avatar
Wohlstand M
Topic author, Lead Developer
Lead Developer
Age: 29
Reputation: 512
Posts: 1612
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #79by Wohlstand » 12 Oct 2020, 17:59

Yidaozhan Ya, YES, TheXTech can frameskip. By default it's disabled. You need to run the game from a terminal/console/command line with the "-f" argument to enable it:

Code: Select all

$ ./thextech -f


Code: Select all

> thextech.exe -f


I think, it's a good reason to add some sort of pre-run setup that can be toggled by user before the game start.

Added after 1 minute 16 seconds:
Yidaozhan Ya wrote:If TheXTech were to add frame skipping, playing SMBX on an Android phone (By using ExaGear Emulator) would be just around the corner! XD
P.S. I plan to release the native Android version of TheXTech in a form of one or two standalone games, packed with resources. It should work much faster than it's being Windows application ran through a huge workaround. ;-)

Added after 4 minutes 6 seconds:
Yidaozhan Ya wrote:which allows the vanilla SMBX to run at full 18-20 FPS
I ran TheXTech on OrangePi that allows me 4-8 FPS :allokay:

Look the demo: https://www.bilibili.com/video/BV1by4y1C7Mg (I know, you can't watch YouTube, therefore I have a Bilibili ;-) )

Yingchun Soul
Count
Count
Avatar
Yingchun Soul
Count
Count
Age: 23
Reputation: 86
Posts: 280
Joined: 14 Nov 2014
Location: China
Website

Post #80by Yingchun Soul » 30 Oct 2020, 3:24

I found a message block sound bug:

If event was filled message, press "Jump" button still plays message sound after message disappeared......

EDIT: Just a misattached "Message" sound for message box!!! (on The Invasion 2)
Last edited by Yingchun Soul on 31 Oct 2020, 2:59, edited 1 time in total.
Stardream Studios Creator, Advanced SoundFont Maker.

迎春心情 (迎春心语 Alt.) in Chinese
Alt. nickname: "Elf of Happy and Love / 快乐爱的小精灵"

Check out my 2D Platform Asset: Fairy Tale World

Check out my SMBX Projects - Fairy Tale Projects:
Mario in Fairytale Land
Mario in Wonderland Revolution

Plannings for Sandbox Engines

I'm using ZynAddSubFX, Dexed and Surge to create instruments, as well as setBfree for organs.

Image
My planned SoundFont series (Chinese) Task frozen.

加入星梦工作室!
Join Stardream Studios!


光明圣洁的使者啊,请你赋予我一双洁白的羽翼,带我飞向远方吧,为身边的人们带来无尽的守护、指引和爱,让我的歌声为每一座城市充满正能量吧!天使降临!


Return to “Engine Development”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest