Jibble

Author Topic: AGS engine Linux port  (Read 160223 times)

Radiant

  • Mittens Knight
  • AGS Baker
  • Return once more to the Two Kingdoms!
    • I can help with publishing
    • I can help with story design
    • Radiant worked on one or more games that won an AGS Award!
    •  
    • Radiant worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #680 on: 10 Apr 2019, 20:10 »
I'm afraid I hadn't heard of that build before. Where can I find it?

Re: AGS engine Linux port
« Reply #681 on: 10 Apr 2019, 20:42 »
@Radiant:
I'm using toojays' OpenGL implementation here, applied to the 3.4.15 linux sourcetree. You may also want to build a custom Allegro 4.4.3 library to deal with spazzy mouse behaviour. If you're going to distribute this on say, Steam, you'll also want to update the make_ags+libraries script.

blur

    • blur worked on one or more games that won an AGS Award!
    •  
    • blur worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #682 on: 19 Jul 2020, 09:13 »
I get the following error when compiling from git origin/master:
Code: [Select]
Linking engine...
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libdumb.a(itrender.o): in function `it_filter':
(.text+0x11f9): undefined reference to `__pow_finite'
/usr/bin/ld: (.text+0x123a): undefined reference to `__exp_finite'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libdumb.a(itrender.o): in function `update_effects':
(.text+0x404b): undefined reference to `__pow_finite'
/usr/bin/ld: (.text+0x4079): undefined reference to `__pow_finite'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libdumb.a(itrender.o): in function `process_tick':
(.text+0x429c): undefined reference to `__pow_finite'
/usr/bin/ld: (.text+0x42e0): undefined reference to `__pow_finite'
/usr/bin/ld: (.text+0x4386): undefined reference to `__pow_finite'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libdumb.a(itrender.o):(.text+0x4c34): more undefined references to `__pow_finite' follow
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libdumb.a(readmod.o): in function `dumb_read_mod_quick':
(.text+0x8d1): undefined reference to `__log_finite'
collect2: error: ld returned 1 exit status
make: *** [Makefile:40: ags] Error 1
Please send help.

Re: AGS engine Linux port
« Reply #683 on: 19 Jul 2020, 10:43 »
Does this make any difference?

Code: [Select]
make USE_BUILT_IN_LIBSRC=1

blur

    • blur worked on one or more games that won an AGS Award!
    •  
    • blur worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #684 on: 19 Jul 2020, 12:17 »
Cor blimey! Indeed, this works.
The system's libdumb is 0.9.3 while the libdumb in ags source is 0.9.2.

eri0o

Re: AGS engine Linux port
« Reply #685 on: 19 Jul 2020, 17:13 »
Why are you building from source?

I recommend using the Allegro4 from AGS repositories if the sound is broken.

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #686 on: 18 Dec 2020, 13:55 »
My game makes AGS Linux crash about half-way through the game. Everything runs fine for about 45 minutes but then something makes it crash, only on Linux, and during a completely innocuous part (nothing special compared to other parts of the game).

Who do I speak to to try and find the cause? It might be an engine memory leak related to sound because the user says that after that point the game crashes randomly.


The game :
https://www.dropbox.com/s/wt0sa0692hr1al5/Relic%20of%20the%20Viking%201.1%20LINUX.zip?dl=0

Scenario 1 : crash caused by sound effect :
(debian testing 64bit)
(ran as user, not admin)
1. download file
2. uncompress file
3. open terminal in extracted folder
4. chmod +x IndianaJonesandtherelicoftheviking
5. cd data
6. chmod +x ags64
7. cd ..
8. ./IndianaJonesandtherelicoftheviking

After dong that, play the game (use the walkthrough if needed)
Play until you manage to break the small metal door of the ruin and if falls onto the snow and starts sliding towards the right.
At the exact moment when it hits the ice wall, the game is supposed to play a sound effect. It does play it, but then the user reports that that game hangs indefinitely.

Scenario 2 : trying to work around the sound-related crash issue :
1. download file
2. uncompress file
3. open terminal in extracted folder
4. chmod +x IndianaJonesandtherelicoftheviking
5. cd data
6. chmod +x ags64
7. "run ags64 directly" (I don't know what exact command was used)
The user reports that by running ags64 instead of the launch script (IndianaJonesandtherelicoftheviking), the sound libraries are not loaded. Therefore there's no sound. Therefore the game doesn't crash when trying to play the sound.
BUT there's still an issue:
Quote
by disaling sound I managed to get pass the point where the "ice crack" sound was making the game crash. The small cutscene ends properly.
But after that, the game crashes at random. For example if I click on the wall, indy gets close to it and the game crashes.
if I ignore the wall and go to the port, for example, after a few seconds, the game crashes.

« Last Edit: 18 Dec 2020, 14:15 by Monsieur OUXX »
 

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #687 on: 18 Dec 2020, 14:10 »
My game makes AGS Linux crash about half-way through the game. Everything runs fine for about 45 minutes but then something makes it crash, only on Linux, and during a completely innocuous part (nothing special compared to other parts of the game).

Who do I speak to to try and find the cause? It might be an engine memory leak related to sound because the user says that after that point the game crashes randomly.

Could you clarify, does it happen in particular part of the game all the time, or at random parts? In other words, is it location or playtime that is important? Does it happen when the game runs for the time straight, or you can rerun the game, restore the save, and it will crash anyways at about same place?

Does it happen to single person, or any player?

And ofcourse, when it crashes, are there any messages anywhere, e.g. in the terminal (if player runs from terminal)?
« Last Edit: 18 Dec 2020, 14:12 by Crimson Wizard »

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #688 on: 18 Dec 2020, 16:36 »
Could you clarify, does it happen in particular part of the game all the time, or at random parts? In other words, is it location or playtime that is important? Does it happen when the game runs for the time straight, or you can rerun the game, restore the save, and it will crash anyways at about same place?

Does it happen to single person, or any player?

And ofcourse, when it crashes, are there any messages anywhere, e.g. in the terminal (if player runs from terminal)?


- In a particuar part of the game? :
       "Sound crash" (scenario 1 ) --> YES
       The other crash (scenario 2) --> Seems random
 
What happens if you reload the game?
    I'll ask the player

Does it happen to single person, or any player?
    I have only one Linux tester :/ There's another guy, I'll ask that guy.

When it crashes, are there any messages anywhere, e.g. in the terminal (if player runs from terminal)?
    I'll ask
 

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #689 on: 18 Dec 2020, 16:48 »
Sorry, I forgot to ask, what version of AGS is the linux port (or which commit it's from if built from our repository). And I assume, this does not happen on Windows?

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #690 on: 18 Dec 2020, 17:01 »
Sorry, I forgot to ask, what version of AGS is the linux port (or which commit it's from if built from our repository). And I assume, this does not happen on Windows?

Correct, it does not happen on Windows.
This was built with AGS 3.5.0.24
 

eri0o

Re: AGS engine Linux port
« Reply #691 on: 18 Dec 2020, 17:09 »
Which sound driver is the person using? Does it crash with the SDL2 digi sound driver?

Re: AGS engine Linux port
« Reply #692 on: 18 Dec 2020, 21:38 »
Hi, I'm the user he was talking about. I just tried loading the savegame (just before the door thing) getting the door to hit the ice wall and this time it didn't crash :/ , then I went to fill the bucket with sea water and then it crashed (freezing X11/Xfce [so I reseted lightdm to reset the session)]. I tried disabling (compositing [xfce4]), and I followed the same steps and it didn't crashed. I proceeded to open the tunnel in the ice wall and it seems like it's working fine.
Just in case, this is the output from the terminal:
Code: Adventure Game Studio
  1. Adventure Game Studio v3.5 Interpreter
  2. Copyright (c) 1999-2011 Chris Jones and 2011-2020 others
  3. ACI version 3.5.0.24
  4.  
  5. Initializing allegro
  6. Initializing game data
  7. Located game data file: /home/icevan/Downloads/Relic of the Viking 1/Relic of the Viking 1.1 LINUX/data/Indiana Jones and the relic of the viking.ags
  8. Opened game data file: game28.dta
  9. Game data version: 50
  10. Compiled with: 3.5.0.24
  11. Setting up game configuration
  12. Logging scipt to "warnings.log"
  13. Data directory: /home/icevan/Downloads/Relic of the Viking 1/Relic of the Viking 1.1 LINUX/data/
  14. audio.vox found and initialized.
  15. Setting up window
  16. Initializing TTF renderer
  17. Initializing keyboard
  18. Initializing mouse: number of buttons reported is 3
  19. Install timer
  20. Sound settings: digital driver ID: 'AUTO' (0xffffffff), MIDI driver ID: 'AUTO' (0xffffffff)
  21. Trying to init: digital driver ID: 'ALSA' (0x414c5341), MIDI driver ID: 'NONE' (0x0)
  22. Warning: cannot enable MIDI audio.
  23. Problem: No compatible drivers found in the system.
  24.  
  25. You may supress this message by disabling MIDI sound in the game setup.
  26. Installed digital driver ID: 'ALSA' (0x414c5341), MIDI driver ID: 'NONE' (0x0)
  27. Install exit handler
  28. Initialize path finder library
  29. Game GUI version: 119
  30. Requested script API: v3.5.0.7 (7), compat level: v3.3.4 (2)
  31. Game title: 'Indiana Jones and the relic of the viking'
  32. Checking for disk space
  33. Initializing MOD/XM player
  34. Game native resolution: 320 x 200 (32 bit)
  35. Graphic settings: driver: D3D9, windowed: yes, screen def: scaling, screen size: 0 x 0, match device ratio: ignore, game scale: max_round
  36. Requested graphics driver 'D3D9' not found, will try existing drivers instead
  37. Running OpenGL: 3.0
  38. Mouse control: off, base: 1,000000, speed: 1,000000
  39. Initialize sprites
  40. Audio is processed on the main thread
  41. Engine initialization complete
  42. Starting game

And the output from warnings.log:
Code: Adventure Game Studio
  1. Script : (room:7)[R 11] Wait() was used in Player Enters Screen - use Enters Screen After Fadein instead
  2.  

I also have to say I'm using a laptop (lenovo thinkpad x220 [gpu hd3000 & sound blaster play 3 usb]) with an external display and an usb soundcard. When the game hangs it hangs in two ways: The ice sound keeps on a loop and the desktop keeps working but I cannot click anywhere and there're some graphical artifacts and the desktop won't work as expected, forcing me to reset the session. The other way it crashed, is more or less the same but without the sound loop. I'm running the game in windowed mode.

I hope you find anything of this useful.

I'll keep testing. Thanks!.

Re: AGS engine Linux port
« Reply #693 on: 18 Dec 2020, 22:24 »
I managed to finish the game, I'm still not sure what makes the game crash though :( .
I manually edited acsetup.cfg and this time the game worked fine as expected.
original acsetup.cfg:
Code: Adventure Game Studio
  1. [misc]
  2. game_width=320
  3. game_height=200
  4. gamecolordepth=32
  5. antialias=0
  6. notruecolor=0
  7. cachemax=131072
  8. user_data_dir=
  9. shared_data_dir=
  10. titletext=Indiana Jones and the relic of the viking
  11. [graphics]
  12. driver=D3D9
  13. windowed=0
  14. screen_def=max
  15. game_scale_fs=proportional
  16. game_scale_win=max_round
  17. filter=stdscale
  18. vsync=0
  19. render_at_screenres=0
  20. [sound]
  21. digiid=-1
  22. midiid=-1
  23. threaded=0
  24. usespeech=1
  25. [language]
  26. translation=
  27. [mouse]
  28. auto_lock=0
  29. speed=1
  30.  

modified acesetup.cfg:
Code: Adventure Game Studio
  1. [misc]
  2. game_width=320
  3. game_height=200
  4. gamecolordepth=32
  5. antialias=0
  6. notruecolor=0
  7. cachemax=131072
  8. user_data_dir=
  9. shared_data_dir=
  10. titletext=Indiana Jones and the relic of the viking
  11.  
  12. [graphics]
  13. driver=OGL
  14. windowed=0
  15. screen_def=explicit
  16. screen_width=2560
  17. screen_height=1440
  18. game_scale_fs=proportional
  19. game_scale_win=max_round
  20. filter=stdscale
  21. vsync=0
  22. render_at_screenres=0
  23.  
  24. [sound]
  25. digiid=-1
  26. midiid=-1
  27. threaded=0
  28. usespeech=1
  29.  
  30. [language]
  31. translation=
  32.  
  33. [mouse]
  34. control_when=never
  35.  
  36.  

Re: AGS engine Linux port
« Reply #694 on: 20 Dec 2020, 15:30 »
Hi again,
I was playing "Off The Clock - Stop time! In space!" and at some point the game crashed with a sound in a loop and a non working UI. Alt+tab didn't work either. I opened a console (via ctrl+alt+f1) and killed "ags64" process. Then I went back to graphics mode only to find desktop wasn't working either. Pretty much, same behaviour as with "Indiana Jones and the relic of the viking".

I downloaded the osx version of "Off The Clock - Stop time! In space!" and copied the game data to the linux port of the engine (ags_3.5.0.27_linux.tar.gz) data folder to make it work.

eri0o

Re: AGS engine Linux port
« Reply #695 on: 20 Dec 2020, 21:31 »
Sorry, can you try the sdl2 digi audio driver?

In case of Off the Clock which AGS Engine are you using?

Crimson Wizard

  • Local Moderator
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    • Lifetime Achievement Award Winner
    • Crimson Wizard worked on one or more games that won an AGS Award!
    •  
    • Crimson Wizard worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #696 on: 20 Dec 2020, 21:36 »
In case of Off the Clock which AGS Engine are you using?

3.5.0.27, tar name is mentioned in the post.


I downloaded the osx version of "Off The Clock - Stop time! In space!" and copied the game data to the linux port of the engine (ags_3.5.0.27_linux.tar.gz) data folder to make it work.

Note you can use windows exe too, as any engine port can extract data from there.

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: AGS engine Linux port
« Reply #697 on: 21 Dec 2020, 08:49 »
FYI I have another Linux user who says he finished my game (exact same release as the one who had issues) without issues :

https://twitter.com/ChiSamurai78/status/1340760139247316992