Fixed 1.6.2 is Broken on Windows XP, no K32GetModuleBaseNameA in Kernel32.dll

Puppytine

Slayed dreamer
Posts
2,237
Likes
1,487
...friends or family...
I have neither.
Any device sitting inside your local network could potential exploit a vulnerable service
The only device that is connected to the same router is my phone. Authentication is WPA2-PSK, encryption is AES, strong password, SSID is hidden and MAC address of the smartphone is whitelisted.
While disabling SSID, and MAC filtering don't add that much to actual security, the rest of the things shouldn't be penetrable easily, at all.
software firewall on XP could mitigate that if done properly
Yeah, software firewall has been disabled for a while, I was testing things... gonna put it back later.
A direct remote exploit is less likely than compromise via browser though
Oh yes, this is an absolute truth. Exploiting outdated browser's vulnerabilities, if any, is way more realistic than using OS vulnerabilities.
But my post that you're replying to was originally a response to Noob -- as many other people, who don't really look under the hood and act in simple paradigm "software is no longer supported + there is a record in vulnerabilities database with a scary description, red words and high score = that software is literally available for anybody to hack", he don't realize that 99% of such vulnerabilities require a certain conditions to be met, like certain ports not being blocked by router and firewall (which isn't true in my case), and certain services not being disabled (which also isn't true).

Speaking about potential browser exploit, while I agree it's not totally impossible, I also don't see as a imminent threat: Chrome and Firefox aren't Internet Explorer 6, critical bugs that are easily usable and critically dangerous are not common for those browsers. And since last versions that are compatible with XP are getting older and older, hackers are definitely going to switch focus to newer versions of browsers, since less and less users do have those old versions and there is no reason to put efforts into them.
Not to mention that in order to exploit vulnerabilities that are specific to WinXP and browsers that are used on XP, malware must be kept compatible with XP and not rely on newer API and libraries.

Recent pandemics of cryptors like WannaCry and similar viruses didn't make their way to my PC, and I didn't have any troubles back then when MSBlast was a thing.
As that environment changes and we want to do more modern things it will become increasingly difficult to keep it going on Windows XP.
The number of those modern things is still limited because of MBII is a mod of XP-era game.
Some modern things can be added to Movie Battles, some other cannot.
Infact i think its fair to say that MBII does not support Windows XP any more. We obviously have been unable to test on that platform so we cannot guarantee it will work or continue to work on that platform. If you are running on XP or Vista you should consider yourself at risk because we will have no advanced notice of breaking changes happening on these platforms. Whilst I will take a best efforts approach and will happily investigate and offer assistance to to these platforms there may well be a day where the engineering effort becomes too great or it simply becomes impossible.
So...
It doesn't give an answer to the main question I have right now: are we getting fixed version of cgamex86.dll, that isn't linked to discord_game_sdk.dll implicitly, but rather linked either by delay-load mechanics, or by LoadLibrary + GetProcAdrress?
It's a fairly easy fix:
  1. Check for Windows XP before call any discord function
  2. Link to discord_game_sdk.dll leaving a possibility that discord_game_sdk.dll won't be able to load.
I have to point out even without considering comparability with XP, Movie Battles must not rely that Discord library always will be able to be loaded; any software must be designed in the way that non-essential components won't break the main program from starting up, and anything else is just a bad coding habit.
discord_game_sdk.dll may fail to load by thousand different reasons, unrelated to old operating system, and even if it's loaded successfully, a return code DiscordCreate() must always be checked for success; if anything goes wrong, MBII must boot up anyway, ditching Discord integration for that time.

As you can see, it's neither too great or impossible in this case, so we hope you'll take a best efforts approach and happily use a results of my tiny investigation and offer us assistance, expressed in the form of patched cgamex86.dll.
At the end of the day, when JKA Launched it also supported Windows 2k, Windows 98 and PowerPC Macs, just like at some point these quietly slipped beyond what we can offer full development effort for, Windows XP is approaching that point now.
Maybe it's "approaching", but it's definitely not have approached that point at this time, so let's not ditch comparability prematurely.
I believe I remember not all devs were happy when Apple just completely cut off all 32-bit support from their most recent desktop OS...
Reply so late im not invested anymore.
My bad, my bad. Being too busy recently.
But keep in mind, that doesn't make my points any less relevant, and it certainly doesn't make your arguments more valuable
XP умер - да здравствует 10!
This is not a crapposting thread. Please don't send random sentences here.
 
Last edited:

Helix

Movie Battles II Team Retired
Posts
577
Likes
609
Puppy, I see your point of view, yet there's this thing: AFAIK we don't have any testers with XP. Checking XP compatibility for each new feature added (well, not each, but you understand what I mean) would be too much trouble for a little gain - it'd slow the development and testing processes.

I see no problem with fixing this exact issue that you mentioned, but from my point of view releasing a patch a week or two earlier is better than making sure that each new feature/integration is XP-compatible. It just doesn't make sense.

There would be no problem in fixing small individual issues like this one. But I understand and support Defiant's phrase that it's safe to assume that MBII isn't compatible with XP anymore out of the box.

I ask you to cease demagoguery here and try to see the situation from the point of view of the developers.
 

Defiant

Nerd
Project Leader
Movie Battles II Team
Code Leader
Posts
1,007
Likes
1,451
So...
It doesn't give an answer to the main question I have right now: are we getting fixed version of cgamex86.dll, that isn't linked to discord_game_sdk.dll implicitly, but rather linked either by delay-load mechanics, or by LoadLibrary + GetProcAdrress?
It's a fairly easy fix:
  1. Check for Windows XP before call any discord function
  2. Link to discord_game_sdk.dll leaving a possibility that discord_game_sdk.dll won't be able to load.
I have to point out even without considering comparability with XP, Movie Battles must not rely that Discord library always will be able to be loaded; any software must be designed in the way that non-essential components won't break the main program from starting up, and anything else is just a bad coding habit.
discord_game_sdk.dll may fail to load by thousand different reasons, unrelated to old operating system, and even if it's loaded successfully, a return code DiscordCreate() must always be checked for success; if anything goes wrong, MBII must boot up anyway, ditching Discord integration for that time.

As you can see, it's neither too great or impossible in this case, so we hope you'll take a best efforts approach and happily use a results of my tiny investigation and offer us assistance, expressed in the form of patched cgamex86.dll.

The answer is maybe. The upcoming hotfix will have the discord dll switched over to be delay loaded, and some code added that should stop any discord function being called for anything earlier than Windows 7. Will it work....hopefully.
 

Puppytine

Slayed dreamer
Posts
2,237
Likes
1,487
AFAIK we don't have any testers with XP. Checking XP compatibility for each new feature added (well, not each, but you understand what I mean) would be too much trouble for a little gain - it'd slow the development and testing processes.
There is no need of testers with XP. Just keeping in mind while coding that some API may not be available on Windows XP and checking MSDN articles about functions getting used in MBII would be enough. Then if something is slipped into release, people like me will point that out, and you'll just have to make a patch basing on bug reports.
After all, I believe there is no testers with XP on the dev team for a pretty long time, surely it isn't first release without actual XP testing, but everything worked fine before.

As for non-essential plugins, like this Discord library, you should be careful with those things whether or not you consider XP as a supported platform.
Don't rely on that third-party libraries always work properly, always keep a chance that plugin failed to load. Move Battles should be able to survive it and keep working.
This isn't first time discord_game_sdk.dll causes troubles when used without adequate level of awareness; Warframe players had some issues with that lib in the past: Game crashes after hitting play [Fixed]
I ask you to cease demagoguery here
Excuse me, what? Where did you see a "demagoguery" in my posts?
I thought we had a civil, reasonable discussion about a perfectly legit bug-report I made, that's all.
The answer is maybe. The upcoming hotfix will have the discord dll switched over to be delay loaded, and some code added that should stop any discord function being called for anything earlier than Windows 7. Will it work....hopefully.
So I hope it will be released and it will work 🙏🙏🙏 ...

As for now, MBII isn't in working condition on Windows XP, so I crafted an another fix:
  1. Download an attachment from this reply
  2. Extract "discord_game_sdk.dll" into your "Jedi Academy\GameData" directory, overwriting existing file
  3. If MBII Launcher overwrites that file, repeat step 2.
Source code for those who are interested (if we really can call those few lines an actual "source code" xD) is included.
You'll need Delphi 7 compiler to build it by yourself (not required if you just want to use the patch). Probably should work with other Deplhi vesions too, maybe with Free Pascal Compiler.

Code:
library discord_game_sdk;

function DiscordCreate(Version: Integer; out o, u): Integer; cdecl;
begin
Result := 1; // No.
end;

exports DiscordCreate;

begin
end.
 

Attachments

  • DiscordStub 2020-06-14.1.zip
    9.9 KB · Views: 237

Defiant

Nerd
Project Leader
Movie Battles II Team
Code Leader
Posts
1,007
Likes
1,451
There is no need of testers with XP. Just keeping in mind while coding that some API may not be available on Windows XP and checking MSDN articles about functions getting used in MBII would be enough. Then if something is slipped into release, people like me will point that out, and you'll just have to make a patch basing on bug reports.
After all, I believe there is no testers with XP on the dev team for a pretty long time, surely it isn't first release without actual XP testing, but everything worked fine before.

In these two cases it wasn't us using an API that caused problems and needed testing to fix. We generally don't use platform specific APIs, but may be using more in the future. If the day comes that a certain API is unavailable on XP that is needed for a feature then there will be nothing we can do.

As for non-essential plugins, like this Discord library, you should be careful with those things whether or not you consider XP as a supported platform.
Don't rely on that third-party libraries always work properly, always keep a chance that plugin failed to load. Move Battles should be able to survive it and keep working.
This isn't first time discord_game_sdk.dll causes troubles when used without adequate level of awareness; Warframe players had some issues with that lib in the past: Game crashes after hitting play [Fixed]

There are no details of what went wrong there. We need to upgrade Launcher to also install prerequisites which should prevent any problems with loading a dll. Switching to schemes that allow finer control - such as loading the dll manually using LoadLibrary require too much engineering effort to keep in sync if the discord API changes. Other than people running XP, no one we are aware of has yet had any issues launching the game due to the discord dlls.
 
Top