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.
XL Engine source code release!
- drummyfish
- Posts: 154
- Joined: 22 Oct 2017, 10:13
- Contact:
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
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.
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.
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
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.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.
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.
Re: XL Engine source code release!
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).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. :/
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).
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
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.
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.
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
Almost there...
Code: Select all
bcurtis@Wintermute:~/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
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
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.
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...
Code: Select all
bcurtis@Wintermute:~/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
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)
- psi29a
- Posts: 5361
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: XL Engine source code release!
Fixed this AS problem... apparently missing string (missing param) in Create Window in the AS files of DarkXL.
Now we just get this:
At this point, it's trying GOB_Reader::Open(char const*)... and we get lost along the way. Any ideas?
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 (sig=sig@entry=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 (sig=sig@entry=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.