XL Engine source code release!

Not about OpenMW? Just about Morrowind in general? Have some random babble? Kindly direct it here.
User avatar
drakovyrn
Posts: 63
Joined: 17 Feb 2017, 03:51
Contact:

Re: XL Engine source code release!

Post by drakovyrn » 06 Apr 2018, 05:51

Personally, Blood is my favorite Build Engine shooter, but BloodGDX works pretty well already. I love Star Wars, and I like playing Dark Forces, but I honestly don't need a source port for that.

I like Daggerfall Unity and what Interkarma has achieved thus far, but I don't like that it depends on... Unity (a proprietary engine, no less). It's also comparably slow, when a source port of a game from that era should run ludicrously fast on modern computers.

User avatar
raevol
Posts: 3054
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: XL Engine source code release!

Post by raevol » 06 Apr 2018, 05:51

psi29a wrote:
05 Apr 2018, 21:48


If I comment out that line, it compiles and then we get:
Screenshot from 2018-04-05 23-33-43.png

It Lives! :)
I see shadows are working! :D

User avatar
drummyfish
Posts: 154
Joined: 22 Oct 2017, 10:13
Contact:

Re: XL Engine source code release!

Post by drummyfish » 06 Apr 2018, 06:42

psi29a wrote:
05 Apr 2018, 21:48
It Lives! :)
OMG, can't wait to get home :) Great job.

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 07:17

Still need to fix the issue on
https://github.com/Mindwerks/XLEngine/b ... g.cpp#L577

something doesn't like being overloaded. :/

Now I need to figure out how the individual 'plugins' worked and where loaded into xlengine.

Right now, nothing in the DaggerXL, etcXL compiles. I'll need help there as well if anyone would like to try.

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 07:20

drakovyrn wrote:
06 Apr 2018, 05:51
Personally, Blood is my favorite Build Engine shooter, but BloodGDX works pretty well already. I love Star Wars, and I like playing Dark Forces, but I honestly don't need a source port for that.

I like Daggerfall Unity and what Interkarma has achieved thus far, but I don't like that it depends on... Unity (a proprietary engine, no less). It's also comparably slow, when a source port of a game from that era should run ludicrously fast on modern computers.
Well... This XLEngine source drop is not a 'source port' of the games in question but an re-implementation. LuciusDXL was working on a source port, by reverse engineering the binaries through the DosBox debugger.

However, your point stands. I'm not sure where XL Engine will take us. As saidin the opening post, BloodXL and OutlawsXL are mostly the beginning bits and nothing of substance.

Chris
Posts: 1566
Joined: 04 Sep 2011, 08:33

Re: XL Engine source code release!

Post by Chris » 06 Apr 2018, 08:16

psi29a wrote:
06 Apr 2018, 07:17
Still need to fix the issue on
https://github.com/Mindwerks/XLEngine/b ... g.cpp#L577

something doesn't like being overloaded. :/
Looks like it's having trouble seeing the global operator== to test if two strings are equal. afritz1 made a pull request to work around the issue (and I made one to add a basic CMakeLists.txt, to make it easier to build).

I have it building now, but unfortunately it's not working for me. It seems to require a specific version of AngelScript that's older than the current. It includes angelscript.h for the version it wants, but the user has to install the specific library version or else the linked executable will crash (I tried updating the built-in header, but got a bunch of compile errors due to missing methods).

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 08:36

I saw that you were working on it, I checked the forks. ;) Thanks!

I ran into the same problem you did, using the latest AS is a no-go. You can use the release zip (AprilFirst.zip), in there is the version that LuciusDXL used. There are two copies of the sdk in there (checked into svn?), anyway... it works for me.

To be clear, the linux XLEngine hard linked against DarkXL, so my next step is to create a DarkXL.so file.

Basically all *XL plugins are nothing more than libs, so files in Linux.

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 08:41

Almost there...

Code: Select all

[email protected]:~/Workspace/Private/XLEngine/xlengine/linux$ LD_LIBRARY_PATH=./ ./XLEngine 
Starting DarkXL version 9.500
Start UI Script: DarkXL/CoreUI.as
Error: Failed to load DARK.GOB

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 09:00

So XLEngine is currently hard coded to look up DarkXL.so, so we put that beside the XLEngine binary. It complains that is needs the AS files, ok, we create a DarkXL directory and copy all the DarkXL *.as files to it.

Code: Select all

[email protected]:~/Workspace/Private/XLEngine/xlengine/linux/DarkXL$ ls
ccd.id    DARK.GOB      DarkXL     dirinfo     drive.cd   imuse.ini  lfd        sounds.gob   stealth       XLEngine
dark.exe  darkpilo.cfg  DarkXL.so  dos4gw.exe  imuse.exe  jedi.cfg   local.msg  sprites.gob  textures.gob
Remember, it is looking for DARK.GOB, on ext4, everything is case-sensative so I had to rename dark.gob.

We load it up, and now we have script errors... so close, yet so far...
LD_LIBRARY_PATH=./ ./XLEngine

Code: Select all

Starting DarkXL version 9.500
Start UI Script: DarkXL/CoreUI.as
SECTION_CORE (14, 1) : INFO : Compiling void UI_Title_OnEnter()
ScriptError: SECTION_CORE (14, 1) : INFO : Compiling void UI_Title_OnEnter()

SECTION_CORE (50, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'
ScriptError: SECTION_CORE (50, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'

SECTION_CORE (50, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (50, 2) : INFO : Candidates are:

SECTION_CORE (50, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (50, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (51, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'
ScriptError: SECTION_CORE (51, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'

SECTION_CORE (51, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (51, 2) : INFO : Candidates are:

SECTION_CORE (51, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (51, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (52, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'
ScriptError: SECTION_CORE (52, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, float, const uint, float, const uint, const int)'

SECTION_CORE (52, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (52, 2) : INFO : Candidates are:

SECTION_CORE (52, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (52, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (7, 1) : INFO : Compiling void UI_Config_OnEnter()
ScriptError: SECTION_CORE (7, 1) : INFO : Compiling void UI_Config_OnEnter()

SECTION_CORE (14, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, const uint, const uint, const uint, const uint, const int)'
ScriptError: SECTION_CORE (14, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, const uint, const uint, const uint, const uint, const int)'

SECTION_CORE (14, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (14, 2) : INFO : Candidates are:

SECTION_CORE (14, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (14, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (7, 1) : INFO : Compiling void UI_LevelSelect_OnEnter()
ScriptError: SECTION_CORE (7, 1) : INFO : Compiling void UI_LevelSelect_OnEnter()

SECTION_CORE (26, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'
ScriptError: SECTION_CORE (26, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'

SECTION_CORE (26, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (26, 2) : INFO : Candidates are:

SECTION_CORE (26, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (26, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (27, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'
ScriptError: SECTION_CORE (27, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'

SECTION_CORE (27, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (27, 2) : INFO : Candidates are:

SECTION_CORE (27, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (27, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (28, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'
ScriptError: SECTION_CORE (28, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'

SECTION_CORE (28, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (28, 2) : INFO : Candidates are:

SECTION_CORE (28, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (28, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

SECTION_CORE (29, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'
ScriptError: SECTION_CORE (29, 2) : ERR  : No matching signatures to 'UI_CreateWindow(string&, const uint, int, const uint, const uint, const uint, const int)'

SECTION_CORE (29, 2) : INFO : Candidates are:
ScriptError: SECTION_CORE (29, 2) : INFO : Candidates are:

SECTION_CORE (29, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)
ScriptError: SECTION_CORE (29, 2) : INFO : void UI_CreateWindow(string&in, string&in, int, int, int, int, int, int)

terminate called after throwing an instance of 'std::bad_array_new_length'
  what():  std::bad_array_new_length
Aborted (core dumped)

User avatar
psi29a
Posts: 4720
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: XL Engine source code release!

Post by psi29a » 06 Apr 2018, 09:40

Fixed this AS problem... apparently missing string (missing param) in Create Window in the AS files of DarkXL.

Now we just get this:

Code: Select all

(gdb) run
Starting program: /home/bcurtis/Workspace/Private/XLEngine/xlengine/linux/DarkXL/XLEngine 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Starting DarkXL version 9.500
Start UI Script: DarkXL/CoreUI.as
terminate called after throwing an instance of 'std::bad_array_new_length'
  what():  std::bad_array_new_length

Program received signal SIGABRT, Aborted.
__GI_raise ([email protected]=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise ([email protected]=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff5fadf5d in __GI_abort () at abort.c:90
#2  0x00007ffff6db5563 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff6dba4f6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff6dba531 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff6dba764 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff6db94f2 in __cxa_throw_bad_array_new_length () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00005555555ddc47 in GOB_Reader::Open(char const*) ()
#8  0x00005555555c04b1 in ArchiveManager::OpenArchive(unsigned int, char const*) ()
#9  0x00005555555c07e6 in ArchiveManager::GameFile_Open(unsigned int, char const*, char const*) ()
#10 0x00007fffeb319ff8 in CutscenePlayer::LoadCutsceneData() () from ./DarkXL.so
#11 0x00007fffeb319f97 in CutscenePlayer::Init(XLEngine_Plugin_API const*) () from ./DarkXL.so
#12 0x00007fffeb31ac9b in DarkXL_Game::DarkXL_Game(XLEngine_Plugin_API const*) () from ./DarkXL.so
#13 0x00007fffeb31afac in DarkXL_CreateGame(XLEngine_Plugin_API const*) () from ./DarkXL.so
#14 0x00007fffeb31b0a0 in XL_initPlugin () from ./DarkXL.so
#15 0x0000555555600620 in PluginManager::InitGame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#16 0x00005555555bd051 in Engine::InitGame(char const*) ()
#17 0x00005555555bbb30 in main ()
(gdb) quit
A debugging session is active.
At this point, it's trying GOB_Reader::Open(char const*)... and we get lost along the way. Any ideas?

Post Reply