ptitSeb / Serious-Engine

A port to the OpenPandora (and working fine on plain Linux) of the open source version of a game engine developed by Croteam for the classic Serious Sam games. Status: Working (for both FE and SE).
https://pyra-handheld.com/boards/threads/serious-sam-first-encounter.77225/
GNU General Public License v2.0
75 stars 22 forks source link

Linux x64 build errors out #12

Closed parkerlreed closed 5 years ago

parkerlreed commented 5 years ago

So the linux64 script ran great and created the binary along with the three game library files

I copied them to their respective Bin/ and Bin/Debug folders.

First thing I ran into was it complaining about missing libEntitiesMPD.so

I solved that by removing the ModExt.txt from the folder.

After trying to run it again I get the first time launch message but then crash out with

[parker@stealth Serious-Engine]$ ./Bin/ssam-tfe 
STUBBED: load window icon in /home/parker/build/Serious-Engine/Sources/SeriousSam/MainWindow.cpp, line 168.
STUBBED: Need SDL invisible window or something in /home/parker/build/Serious-Engine/Sources/SeriousSam/MainWindow.cpp, line 327.
STUBBED: !!! FIXME: get the code back in from Ryan's original port. in /home/parker/build/Serious-Engine/Sources/Engine/Base/Stream.cpp, line 921.
STUBBED: Report actual SDL device name? in /home/parker/build/Serious-Engine/Sources/Engine/Sound/SoundLibrary.cpp, line 269.
STUBBED: co-opt the existing T-buffer support for multisampling? in /home/parker/build/Serious-Engine/Sources/Engine/Graphics/SDL/SDLOpenGL.cpp, line 113.
WARN: 

Assertion failure at StopTimer (/home/parker/build/Serious-Engine/Sources/./Engine/Base/Statistics_Internal.h:167), triggered 1 time:
  'sf_astTimers[iTimer].st_tvStarted.tv_llValue != -1'

Arch cmake 3.15.2-1 gcc 9.1.0-2

parkerlreed commented 5 years ago

gdb output

gdb.txt

ptitSeb commented 5 years ago

Are you trying to run The First Encounter or The Second Encounter?

parkerlreed commented 5 years ago

./Bin/ssam-tfe The First

ptitSeb commented 5 years ago

So you put all the data from the window version of Serious Sam - The First Encounter (not the HD version), and then copied the generated binary along with the windows .exe right ? Did you also copied the SE1_10.gro from the root of the repo?

ptitSeb commented 5 years ago

Ah yes,the tfe was in first post.

Also, were does the ModEXT.txt came from?

parkerlreed commented 5 years ago

https://github.com/ptitSeb/Serious-Engine/blob/master/ModEXT.txt it's in the repo. It seems to be more for the Second Encounter.

And yeah I copied the gro files from the Windows Classic First Encounter

The original repo had you run the game from the root of the git directory so I was following that.

I believe everything is in place. There just seems to be a weird error with the actual code running.

ptitSeb commented 5 years ago

It's easier to do the oposite: you take the full install of the windows version, and you just add the SE1_10.gro in root and add the binary and lib in the proprer place. Not only the .gro are needed, many of the orginial folder and files are needed too.

parkerlreed commented 5 years ago

I'll try it out.

ptitSeb commented 5 years ago

The original repo had you run the game from the root of the git directory so I was following that.

I think I write some proprer installation procedure, for First and Second encouter.

parkerlreed commented 5 years ago

Same deal

[parker@stealth Serious Sam Classic The First Encounter]$ pwd
/home/parker/.local/share/Steam/steamapps/common/Serious Sam Classic The First Encounter
[parker@stealth Serious Sam Classic The First Encounter]$ cp -Rv ~/build/Serious-Engine/Sources/cmake-build/Debug/ Bin/
'/home/parker/build/Serious-Engine/Sources/cmake-build/Debug/' -> 'Bin/Debug'
'/home/parker/build/Serious-Engine/Sources/cmake-build/Debug/libGameD.so' -> 'Bin/Debug/libGameD.so'
'/home/parker/build/Serious-Engine/Sources/cmake-build/Debug/libShadersD.so' -> 'Bin/Debug/libShadersD.so'
'/home/parker/build/Serious-Engine/Sources/cmake-build/Debug/libEntitiesD.so' -> 'Bin/Debug/libEntitiesD.so'
[parker@stealth Serious Sam Classic The First Encounter]$ cp -Rv ~/build/Serious-Engine/Sources/cmake-build/ssam-tfe Bin/
'/home/parker/build/Serious-Engine/Sources/cmake-build/ssam-tfe' -> 'Bin/ssam-tfe'
[parker@stealth Serious Sam Classic The First Encounter]$ cp -Rv ~/build/Serious-Engine/SE1_10.gro .
'/home/parker/build/Serious-Engine/SE1_10.gro' -> './SE1_10.gro'
[parker@stealth Serious Sam Classic The First Encounter]$ Bin/ssam-tfe 
STUBBED: load window icon in /home/parker/build/Serious-Engine/Sources/SeriousSam/MainWindow.cpp, line 168.
STUBBED: Need SDL invisible window or something in /home/parker/build/Serious-Engine/Sources/SeriousSam/MainWindow.cpp, line 327.
STUBBED: !!! FIXME: get the code back in from Ryan's original port. in /home/parker/build/Serious-Engine/Sources/Engine/Base/Stream.cpp, line 921.
STUBBED: Report actual SDL device name? in /home/parker/build/Serious-Engine/Sources/Engine/Sound/SoundLibrary.cpp, line 269.
STUBBED: co-opt the existing T-buffer support for multisampling? in /home/parker/build/Serious-Engine/Sources/Engine/Graphics/SDL/SDLOpenGL.cpp, line 113.
WARN: 

Assertion failure at StopTimer (/home/parker/build/Serious-Engine/Sources/./Engine/Base/Statistics_Internal.h:167), triggered 1 time:
  'sf_astTimers[iTimer].st_tvStarted.tv_llValue != -1'
ptitSeb commented 5 years ago

Mmm, I looked at gdb trace you put earlier, I guess the crash is just the assert stopping the program. The problem is, there are many assert still triggering in this port. I suggest you build as a RelWithDebInfo so the assert don't stop.

parkerlreed commented 5 years ago

image

:D that worked. I can't seem to adjust resolution at the moment but I'll continue to play around with it.

parkerlreed commented 5 years ago

The resolution selection only works via left arrow lol. Clicking/right arrow do nothing. That's an odd one

ptitSeb commented 5 years ago

Glad it work !

(And I really should update this readme, and like add a warning notice: donc build debug unless you want to clean all the assert triggering...)

MasterO2 commented 5 years ago

Glad it work !

(And I really should update this readme, and like add a warning notice: dont build debug unless you want to clean all the assert triggering...)

So what you mean is the following needs to be specified before building to prevent that assert error:

cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo

If so, it should definitely be added to the readme.

ptitSeb commented 5 years ago

@MasterO2 : yes, exactly.

ptitSeb commented 5 years ago

Ok done. Hopefully it's more clear now, and working out of the box.