SMBX Legacy Source Code

General discussion about Super Mario Bros. X.
MarioLover64
Spike
Spike
Posts: 259
Joined: Fri Apr 26, 2019 6:09 pm

Re: SMBX Legacy Source Code

Postby MarioLover64 » Mon Feb 03, 2020 10:23 am

At least you can find out where to hook with the source code released

Hoeloe
Foo
Foo
Posts: 1463
Joined: Sat Oct 03, 2015 6:18 pm
Flair: The Codehaus Girl
Pronouns: she/her

Re: SMBX Legacy Source Code

Postby Hoeloe » Mon Feb 03, 2020 10:25 am

That's something we could already do, but this does make it a tiny bit easier.

SuperSmashbroFanX
Banned
Posts: 83
Joined: Sun Jan 26, 2020 6:33 am

Re: SMBX Legacy Source Code

Postby SuperSmashbroFanX » Mon Feb 03, 2020 2:39 pm

What’s so important about this? Why is everybody exited? Isn’t this just a source code? Are people going to make new versions of smbx? If so that would be too much!!!

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Mon Feb 03, 2020 2:43 pm

SuperSmashbroFanX wrote:
Mon Feb 03, 2020 2:39 pm
What’s so important about this? Why is everybody exited? Isn’t this just a source code? Are people going to make new versions of smbx? If so that would be too much!!!
Any non-oficial versions are just experiments or personal projects for tweaks and things, and they will not be taken for mainstream.
Anyway, I am also did my build, and it's here: https://github.com/WohlSoft/smbx-legacy-source/releases (My purpose to use this - better understand it's internality and make PGE Engine be more accurate).

SuperSmashbroFanX
Banned
Posts: 83
Joined: Sun Jan 26, 2020 6:33 am

Re: SMBX Legacy Source Code

Postby SuperSmashbroFanX » Mon Feb 03, 2020 2:46 pm

Ok I get it now!

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Mon Feb 03, 2020 3:02 pm

Anyway, knowing the fact that everyone would try to extend this source code by adding new features, they would born incompatible file formats are will be not compatible with each other. I mean, any sort of "SMBX65" will be totally non-standarded and incompatible with each other builds. So, for this case needs making some standard of file format that can be used by everyone safely. I would suggest some sort of tagged LVLX, however, it's hard to implement it in pure VB6. However, a big note to everyone: if you trying to extend file formats, please give them a different filename extensions rather "lvl" or "wld" to don't confuse others and tell that these files are incompatible.
Last edited by Wohlstand on Tue Feb 04, 2020 9:19 am, edited 1 time in total.

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Tue Feb 04, 2020 9:18 am

Also, I forgot to tell what I found in this code:
- The release code was already set as 65, however, file formats where left unchanged, so, returning back "64" will make it able to save compatible formats again
- Some places of a game making it unbuildable, for example, incomplete code parts related to "Saved events" feature that Redigit began to work, however, by knowing reasons, didn't finished it. So, to fix them it's need to comment out these lines
- I also found it has the attempt to fix the decimals in NPCtxt-s by the workaround function
- Mushroom bug was been fixed, I didn't reproduced at me from this build
- Also something that I don't know.
Anyway, I fixed the build and it works at my fork now.

JustOneMGuy
Spiny
Spiny
Posts: 29
Joined: Sun Jan 26, 2020 1:33 pm

Re: SMBX Legacy Source Code

Postby JustOneMGuy » Wed Feb 12, 2020 12:42 pm

Interesting fact: the modNPC.bas file contains a comment sentence with a swear word, warning people viewing the Sub method that it is the one of the largest sub methods.

PdizzleParker
Ripper II
Ripper II
Posts: 322
Joined: Fri Aug 10, 2018 11:26 am
Flair: doin your mom
Pronouns: they/them
Contact:

Re: SMBX Legacy Source Code

Postby PdizzleParker » Wed Mar 11, 2020 10:29 pm

This is pretty cool. Not very useful for programming or modding purposes but pretty fun to see how the game works. Kinda sucks that the original SMBX was written in such an outdated language, though. I'm sure if it was a newer one, like C++, then it would be tremendously more useful.

Axiom
Foo
Foo
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: SMBX Legacy Source Code

Postby Axiom » Fri Mar 13, 2020 6:52 am

I would highly recommend to anyone reading this source code and wanting to be a game developer to NOT design your code the way SMBX was designed. 12,000 god functions are not fun for anybody and I'm sure was 1/4 of the reasons why the game was originally discontinued in the first place. Along with the C&D of course. This is still a huge deal though, as it confirms indeed that every bit of SMBX was written under the influence of beer. Cheers everyone! Glad this treasure could be shared with everyone. Now who's going to port it first? ;)

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Fri Mar 13, 2020 6:56 am

Axiom, yeah, at the same time, VB6 (and older) itself is designed to use global god variables everywhere, it's really hard to make on VB6 something more robust in a case of code quality. Redigit was tried to work around it, however, VB6 won over him as I can see. At the same time, VB is a noob-friendly thing, and which makes evil as these developers learning to code shit instead of well organized code.

ShadowXeldron
Snifit
Snifit
Posts: 232
Joined: Sun Dec 08, 2019 8:21 am
Flair: phpBB > ProBoards
Pronouns: He/Him
Contact:

Re: SMBX Legacy Source Code

Postby ShadowXeldron » Tue Mar 24, 2020 6:51 pm

How was this obtained? I know it says 'legit' in the FAQ but I'm not overly sure of the origins.

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Tue Mar 24, 2020 7:00 pm

Dragon0307 wrote:
Tue Mar 24, 2020 6:51 pm
How was this obtained? I know it says 'legit' in the FAQ but I'm not overly sure of the origins.
Redigit gave the code to Kley, however, it was been published with a delay.

BTW: Redigit did an attempt to give the source code in 2016'th year, however, he wasn't able because he was too busy, I had a talk with Joey about that in that time, however, that didn't happen.

Chanceux2
Volcano Lotus
Volcano Lotus
Posts: 575
Joined: Mon Dec 16, 2019 3:39 pm
Flair: People don't care about my threads! :(
Contact:

Re: SMBX Legacy Source Code

Postby Chanceux2 » Tue Mar 24, 2020 10:51 pm

What do we do with the code? make our own SMBX?

ShadowXeldron
Snifit
Snifit
Posts: 232
Joined: Sun Dec 08, 2019 8:21 am
Flair: phpBB > ProBoards
Pronouns: He/Him
Contact:

Re: SMBX Legacy Source Code

Postby ShadowXeldron » Wed Mar 25, 2020 1:26 am

Wohlstand wrote:
Tue Mar 24, 2020 7:00 pm
Dragon0307 wrote:
Tue Mar 24, 2020 6:51 pm
How was this obtained? I know it says 'legit' in the FAQ but I'm not overly sure of the origins.
Redigit gave the code to Kley, however, it was been published with a delay.

BTW: Redigit did an attempt to give the source code in 2016'th year, however, he wasn't able because he was too busy, I had a talk with Joey about that in that time, however, that didn't happen.
Ah, okay. Thanks!

Cedur
Raccoon Mario
Raccoon Mario
Posts: 7073
Joined: Tue Jun 28, 2016 10:14 am
Flair: I'm gone, for chess and minesweeper
Pronouns: he/him

Re: SMBX Legacy Source Code

Postby Cedur » Wed Mar 25, 2020 9:24 am

Chanceux2 wrote:
Tue Mar 24, 2020 10:51 pm
What do we do with the code? make our own SMBX?

as has been said numerous times: no.

even Core's in-progress NSMBX uses Wohl's C++ port.

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Tue Apr 21, 2020 11:40 am

JustOneMGuy wrote:
Sun Feb 02, 2020 1:44 pm
Would this be useful for rewriting the source code in C++, BTW?
While I re-read a history, I found your comment.
I highly recommending you to check out this: viewtopic.php?f=69&t=25352

FanofSMBX
Mouser
Mouser
Posts: 3878
Joined: Sun Dec 22, 2013 12:01 pm

Re: SMBX Legacy Source Code

Postby FanofSMBX » Tue Apr 21, 2020 2:31 pm

Cedur wrote:
Sun Feb 02, 2020 2:17 pm
JustOneMGuy wrote:
Sun Feb 02, 2020 1:44 pm
Would this be useful for rewriting the source code in C++, BTW?

The devs clearly stated that it's not.
1 month later...

P4VL0VSKEY
Tweeter
Tweeter
Posts: 162
Joined: Mon May 04, 2020 8:14 am
Flair: Multi-talented
Pronouns: He/Him

Re: SMBX Legacy Source Code

Postby P4VL0VSKEY » Fri Jun 19, 2020 5:16 am

Okay, but what we can do with that and what's the difference in SMBX 1.3 wrote by VB and SMBX 1.3 wrote by C++?

Wohlstand
Van De Graf
Van De Graf
Posts: 2005
Joined: Tue Feb 11, 2014 4:44 pm
Flair: [ˈvoːlˌʃtant], 狐エンジニア
Pronouns: he/him
Contact:

Re: SMBX Legacy Source Code

Postby Wohlstand » Fri Jun 19, 2020 5:21 am

P4VL0VSKEY wrote:
Fri Jun 19, 2020 5:16 am
Okay, but what we can do with that and what's the difference in SMBX 1.3 wrote by VB and SMBX 1.3 wrote by C++?
Here is yor answer: https://github.com/Wohlstand/TheXTech#w ... -vb6-build

## 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 has a deep integration with PGE Editor that allows to use it with the same functionality as in original editor (the "magic hand" functionality was kept to allow real-time editing of the level while testing, it's needed to use IPC communication with PGE Editor to get the ability to use it better).
- Full support of UTF-8 in filename paths and internal text data (original game had the only 8bit ANSI support).
- For graphics and controlling, it uses an SDL2 library while original game have used WinAPI calls and GDI library.
- It uses PGE-FL that has better file formats support.
- A support for WLDX world maps are allowing unlimited credits lines and custom music without it being necessary to use a music.ini for music replacements.
- Some LVLX exclusive features now working: vertical section wrap, two-way warps, custom "star needed" message, warp enter event, ability to disable stars printing in HUB episodes for specific doors, ability to disable interscene showing when going to another level through a warp.
- Built-in support for episode and level wide music.ini and sounds.ini to override default music and sounds assets.
- World maps now supports a custom directory to store any specific resources like custom tiles/scenes/paths/levels and not spam the episode root folder with world map resources anymore.
- Default config format is INI, old config.dat format is no longer supported, mainly because of incompatible key code values (SDL_Scancode versus VirtualKeys enum of Windows API).
- Game saves now using the SAVX format instead of a classic SAV. However, if you already have an old gamesave, you still can resume your game by using a new engine now (next gamesave attempt will result a SAVX file, old gamesave in SAV format will be kept untouched).
- Built-in PNG support for custom and default graphics. Masked GIFs are still supported for backward compatibility, however, without making an unexpected auto-conversion like SMBX-38A does.
- Checkpoints now have multi-points! You can use them in your levels multiple times without limits!
- It does use of lazy-decompress algorithm to speed-up the loading of a game and reduce the memory usage.
- For music and SFX, the MixerX library is used to give a support for a wide amount of sound and music formats!
- It doesn't embeds any graphics: there are NO trurely hardcoded graphics, everything is now represented by external graphics!
- Some internal limits have been expanded.
- Built-in GIF recorder by F11 key (F10 on macOS, F11 is reserved by system UI for a "show desktop" action)
ALSO:
- It works much faster: the loading of game is almost instant and no hang waiting
- it doesn't overloads CPU (the reason was a bad way to process infinte loops, I did the fix of VB6 build too at my "smbx-experiments" branch)
Last edited by Wohlstand on Fri Jun 19, 2020 5:55 am, edited 1 time in total.


Return to “General”

Who is online

Users browsing this forum: No registered users and 1 guest

SMWCentralTalkhausMario Fan Games GalaxyKafukaMarioWikiSMBXEquipoEstelari