Meet TheXTech: a full working C++ port of SMBX engine [1.3.2]

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: 27
Reputation: 407
Posts: 1511
Joined: 15 Feb 2014
Location: Moscow, Russia
Website Youtube channel URL Skype Tencent QQ

Post #41by Wohlstand » 12 May 2020, 23:25

Olhi wrote:I found a bug on the Linux version that occurs when starting the Classics Collection version of The Great Empire 3:

https://streamable.com/x4iuoh
We had to discuss this and the fix in XMPP. I announcing that this problem has been completely resolved:
https://github.com/Wohlstand/TheXTech/commit/6edef830c0afa06f08ffa37007aa538e65883a82
All custom resources will be looked in a case insensitive manner even on a case-sensitive file system. This feature allows playing of even more episodes on non-Windows platforms without of problems of a case sensitivity crap in resources.

Olhi
Nice citizen
Nice citizen
Avatar
Olhi
Nice citizen
Nice citizen
Reputation: 1
Posts: 14
Joined: 7 Apr 2020

Post #42by Olhi » 15 May 2020, 22:06

I made a test level to compare how checkpoints behave and learned that SMBX2 has three separate types:

npc-192, the midway gate from 1.3 which can only be included once.

npc-400, reusable midway gates whose activation will be tracked.

npc-430, reusable checkpoint flags that can be re-activated.

TheXTech includes only a npc-192, but changed it's behavior to be the same as SMBX2's npc-400. This creates the issue that it's impossible for a level with multiple checkpoints to be compatible with both engines. More than one npc-192 on SMBX2 will cause the Player to (in this example) respawn at the one closest to the exit, while npc-400 on TheXTech will turn into Goombas.

For the sake of consistency, I'd include a npc-400 in TheXTech and discourage the use of npc-192. Since the level would be incompatible with 1.3 either way, I don't think there's a disadvantage.
Attachments
npc400.lvl
(6.23 KiB) Downloaded 2 times
npc192.lvl
(6.23 KiB) Downloaded 2 times
TheXTech-SMBX2-Checkpoint-Test.png

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

Post #43by Wohlstand » 17 May 2020, 1:43

TheXTech by default implements the SMBX64 standard with a small set of additions (I would call that as "SMBX64Ex").

Any items out of SMBX64 max type automatically turning into item-1 to prevent possible crashes. (SMBX 1.3 will just crash). NPC-400 is a 108+ out of range of SMBX64. "SMBX64Ex" means not adding more item types, but extending functionality of existing without of compatibility breackage.

When using old episodes, this doesn't matters because they all was built for old SMBX64 standard. XTech partially implements a PGE standard which intends to use LVLX/WLDX formats instead of classic LVL/WLD for using of new features.

Olhi wrote:npc-430, reusable checkpoint flags that can be re-activated.
I have an another idea to just add the special value that sets the mode of a check-point: by default, activates will be tracked, no re-appear on restart. Turning an option on will make this checkpoint re-appear back again. Adding ID-400 and ID-430 will mean extending the range of IDs which doesn't fit into SMBX64 standard:

P.S. There are already existing set of incompatible standards with different itemsets:
- SMBX-38A
- SMBX2
- recent NSMBX

The "conversion" between standards is possible by replacing IDs of items from one standard with IDs of items from the another. I.e. port episode from SMBX2 to SMBX-38A or opposite, will mean you need to replace all IDs of SMBX2 related items with IDs of SMBX-38A items. This is also may be lossy, because each standard has several exclusive item sets are not exist in other standards, OR, a different behaviour and setups also may distort desired behavior of the same item.

Olhi
Nice citizen
Nice citizen
Avatar
Olhi
Nice citizen
Nice citizen
Reputation: 1
Posts: 14
Joined: 7 Apr 2020

Post #44by Olhi » 17 May 2020, 3:12

Wohlstand wrote:Any items out of SMBX64 max type automatically turning into item-1 to prevent possible crashes. (SMBX 1.3 will just crash). NPC-400 is a 108+ out of range of SMBX64. "SMBX64Ex" means not adding more item types, but extending functionality of existing without of compatibility breackage.

I see. If NPC's outside the range can be turned into item-1, wouldn't it be possible to have npc-400 turn into npc-192? That would solve the issue. Maybe SMBX2 could do the same in reverse. Turn npc-192 into npc-400.

Wohlstand wrote:I have an another idea to just add the special value that sets the mode of a check-point: by default, activates will be tracked, no re-appear on restart. Turning an option on will make this checkpoint re-appear back again. Adding ID-400 and ID-430 will mean extending the range of IDs which doesn't fit into SMBX64 standard:

I don't think npc-430 or it's function is needed in TheXTech. At least I'm not requesting it. I am merely speculating about how to deal with one seemingly minor incompatibility. The Checkpoint is the only one I'm aware of (in regards to TheXTech and SMBX2).


Return to “Engine Development”

Who is online (over the past 5 minutes)

Users browsing this forum: 2 guests