JACoders / OpenJK

Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
GNU General Public License v2.0
2.03k stars 614 forks source link

openjaded vm_create fails #944

Closed toomuchio closed 6 years ago

toomuchio commented 6 years ago

On any modded gamemode vm_create will be unable to load the jampgamei386.so MBII for example.

" VM_Create: jampgamei386.so failed! VM_CreateLegacy: jampgamei386.so succeeded "

This functions fine with the last official binary from Raven though, linuxjampded.

More than willing to do some digging into the issue further but I figured I'd open an issue first and see if it was intended or if anybody else knows what may be causing it.

There's been quite a few commits around vm_create and what it calls, digging through them all to figure out which one broke this could take a while.

xycaleth commented 6 years ago

The error message is a bit misleading. You can see on the second line that jampgamei386.so was loaded via VM_CreateLegacy which means it was loaded successfully.

OpenJK introduces a new mod API which VM_Create attempts to interface with. If that fails, then the engine falls back to VM_CreateLegacy.

toomuchio commented 6 years ago

Interesting I wasn't aware of that.

Well the server does load and begin broadcasting, then as soon as a player joins it'll crash with. SV_CreateChallenge: The challenge subsystem has not been initialized Automatically freeing 1202 blocks making up 18052064 bytes

Printed to the terminal, with the latest MBII for example. Perhaps the legacy vm doesn't initialize the challenge system? I've gone back as far as I can with the builds available and the problem seems to have always been present.

xycaleth commented 6 years ago

Whoops, didn’t realise you’d replied before I closed.

The challenge systems is agnostic of the API so it should be initialised regardless of which API is used. There are existing mods which run fine with the new API too. I’ve heard that MBII has some problems with OpenJK and I think they provide their own older build with their download (I might be wrong).

toomuchio commented 6 years ago

They compile their own versions but all they change is the master server list for the dedicated server binary, it doesn't work in those provided binaries either. The client functions fine though.

I'm not really sure where to point at for this issue, since it works in the official binary which is almost 10 years old now. Not sure how MBII would break the challenge system.

toomuchio commented 6 years ago

For what it's worth I never understood why they went to the extra effort of compiling their own binaries either since you can just override the master server defines in the .cfg since they're just defaults but c'est la vie :/

toomuchio commented 6 years ago

@xycaleth Just tried an older build, OpenJK-MP: v1.0.1.0 linux-i386 Nov 5 2015 Works fine, must have been before the challenge system? Edit tried: OpenJK-MP: v1.0.1.0 linux-i386 Oct 28 2016, works as well not sure when it went all wrong hah...

toomuchio commented 6 years ago

I'm gonna close this one off I just tried the most recent build from the build bot and I can't recreate it. But I can with the binary MBII provides. I was able to recreate it with openja as well but I can't seem to do it now, I'll reopen or open a new issue if I do. Sorry to waste your time.