[OLD-1] AGS engine Linux port

Started by BigMc, Sun 03/06/2012 19:04:20

Previous topic - Next topic

xenogia

Thanks for that.  The games worked under that.  I did notice a few oddities though.  When I quit the game it didn't recover back to my default resolution of 1920x1080.  It just stayed 1280x800.  I'm currently using the latest Nvidia Blob (302.17).  I get this error msg in terminal.

Code: AGS

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  129 (XFree86-VidModeExtension)
  Minor opcode of failed request:  10 (XF86VidModeSwitchToMode)
  Value in failed request:  0x360000d
  Serial number of failed request:  6412619
  Current serial number in output stream:  6412625

Error: the program has exited without requesting it.
Program pointer: +9908  (write this number down), ACI version 3.21.1115
If you see a list of numbers above, please write them down and contact
Chris Jones. Otherwise, note down any other information displayed.

xenogia

Also I noticed some wierd rendering issues in Blackwell Deception.  All I had the x2 filter in Windowed mode and this is what it looked like.


JJS

I pushed a change so that the D3D graphic driver setting is ignored on Linux and Mac (the mobile platforms don't evaluate the configuration file).

E: ^^^ I don't see what is wrong with that screenshot. ^^^
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

BigMc

Thanks JJS!

@xenogia: How is it supposed to look like instead?

xenogia

My apologies I forgot to click smooth sprites, stupid me.  The crackling audio occasionally happens on load up, but it easily fixed by reloading Pulseaudio by doing the standard killall pulseaudio and it reloads itself and the issue disappears.


xenogia

BTW you have done an amazing job on this port.

JJS

I haven't done too much for the Linux port, most of it was already finished by the maintainer of the closed source version. The Debian packaging was also done by BigMc.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

Tea23

I've noticed a lack of updates to the 64bit branch while main is still going along nicely. Does main compile for 64bit yet (thus rendering the branch more or less obsolete) or is it just lagging behind in taking changes from main?

BigMc

It's just lagging behind, but no changes that are important for Linux were added to main since the last merge.

Tea23

Just spotted this commit. Is that now the 64bit branch obsoleted? Should I expect native 64bit if I just compile main now?

If that's the case I need to remove the $CARCH check from the Arch package.


scottchiefbaker

I just wanted to you know I was able to compile a 64 bit version of AGS on Fedora 16 without a hitch! I had to install a couple of libraries, but otherwise everything worked flawlessly. I now have an AGS binary that will run Resonance, Gemini Rue, Time Gentlemen, and three other random games from the AGS site.

In fact, the binary has run everything I've thrown at it. Super stoked!!! Good work everyone who had a part in this!

scottchiefbaker

Maybe I spoke too soon. I loaded up the AGD remake of King's Quest I, walked to the second screen and saved the game. Then I tried to load the save and ags crashed and I got this error:

Code: AGS
An internal error has occurred. Please note down the following information.
If the problem persists, post the details on the AGS Technical Forum.
(ACI version 3.21.1115)

Error: read_gui: file is corrupt
AGS: ***** ENGINE HAS SHUTDOWN

scottchiefbaker

I have the same problem with King's Quest II, but I get a different error.

Code: AGS
An error has occurred. Please contact the game author for support, as this is likely to be a scripting error and not a bug in AGS.
(ACI version 3.21.1115)


Error: Restore_Game: Game has changed (dlg), unable to restore
AGS: ***** ENGINE HAS SHUTDOWN

Crimson Wizard

This looks very much like mistake in game saving/restoring code.
What branch you were building from?
I ask because I had this problem just recently in the 'refactory' branch (that was already fixed though, I think).

scottchiefbaker

I'm compiling "main" according to git status. Should I try a different branch? I loaded KQ1 in Wine did a save/load just fine. It's the exact same game data so I think the problem lies in the engine.

Crimson Wizard

Quote from: scottchiefbaker on Fri 14/09/2012 17:01:35
Should I try a different branch?
No, no, I was asking, just in case. Refactory is still pretty unstable on 64-bit platforms. It's just that the bug sounds familiar.

Quote from: scottchiefbaker on Fri 14/09/2012 17:01:35I think the problem lies in the engine.
Well, that's definitely in the engine, that's what I meant ;).

scottchiefbaker

King's Quest 3, and Resonance save/load just fine. Seems like something is amiss with KQ1 and KQ2.

Crimson Wizard

#58
I wish I could build 64-bit windows version, but AFAIK allegro does not support compiling in 64-bit mode under Win (well, that's MSVS problem, not allegro's; probably there's way around this like using different compiler, but I haven't looked much into that yet).
And I am not an experienced Linux user, unfortunately.
I think I may check those games with engine built as 32-bit to see if this is a general fault or only specific to 64-bit engine version.

If I won't have any result, it's JJS's or BigMC's turn then.

EDIT: Nah, KQ1 seem to work fine with win32 build (main branch).

slapin

hi, all!

This is what happens with latest main branch hash 15039fef3d25004c6ea65501b6da736c59681ee0,
with Quest For Glory II remake during load of game, after saving,
I run it under gdb:

slapin@slapin:~/qfg2$ gdb --args /usr/bin/ags Qfg2vga.exe
GNU gdb (GDB) 7.2-debian
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/ags...Reading symbols from /usr/lib/debug/usr/bin/ags...done.
done.
(gdb) run
Starting program: /usr/bin/ags Qfg2vga.exe
[Thread debugging using libthread_db enabled]
Adventure Creator v3.21 Interpreter
Copyright (c) 1999-2001 Chris Jones
ACI version 3.21.1115
AGS: ***** ENGINE STARTUP
AGS: Reading config file
AGS: Initializing allegro
[New Thread 0xb764eb70 (LWP 8498)]
AGS: Setting up window
AGS: Initializing game data
AGS: Initializing TTF renderer
AGS: Initializing mouse
AGS: Checking memory
ci_find_file: cannot change to directory: Compiled
AGS: Initializing audio vox
Audio vox found and initialized.
AGS: Initializing keyboard
AGS: Install timer
Checking sound inits.
[New Thread 0xb6e4db70 (LWP 8499)]
AGS: Initialize sound drivers
[New Thread 0xb664cb70 (LWP 8500)]
[Thread 0xb664cb70 (LWP 8500) exited]
AGS: Install exit handler
AGS: Initialize path finder library
AGS: Initialize gfx
AGS: Load game data
AGS: Quest for Glory II
AGS: Checking for disk space
AGS: Initializing MOD/XM player
AGS: Initializing screen settings
AGS: Init gfx filters
AGS: Init gfx driver
AGS: Switching to graphics mode
AGS: Widescreen side borders: disabled (windowed mode)
AGS: Attempt to switch gfx mode to 320 x 200 (32-bit)
AGS: Succeeded. Using gfx mode 320 x 200 (32-bit)
AGS: Preparing graphics mode screen
AGS: Initializing colour conversion
AGS: Check for preload image
AGS: Initialize sprites
AGS: Set up screen
AGS: Initialize game settings
AGS: Prepare to start game
[New Thread 0xb664cb70 (LWP 8501)]
AGS: Checking replay status
AGS: Engine initialization complete
AGS: Starting game
AGS: Loading room 0
AGS: Room change requested to room 87
AGS: Unloading room 0
AGS: Loading room 87
AGS: Room change requested to room 1
AGS: Unloading room 87
AGS: Loading room 1
AGS: Unloading room 1
An error has occurred. Please contact the game author for support, as this is likely to be a scripting error and not a bug in AGS.
(ACI version 3.21.1115)


Error: Restore_Game: Game has changed (dlg), unable to restore
[Thread 0xb664cb70 (LWP 8501) exited]
[Thread 0xb6e4db70 (LWP 8499) exited]
[Thread 0xb764eb70 (LWP 8498) exited]

Program received signal SIGSEGV, Segmentation fault.
reset () at ../Common/acroom.h:680
680           response->reset();
(gdb) bt
#0  reset () at ../Common/acroom.h:680
#1  ~NewInteraction () at ../Common/acroom.h:688
#2  ~RoomStatus () at ../Common/acruntim.h:94
#3  resetRoomStatuses () at ac.cpp:440
#4  0x080f656a in quit (quitmsg=0x814961c "!Restore_Game: Game has changed (dlg), unable to restore") at ac.cpp:9675
#5  0x081212ea in restore_game_data (ooo=0x8441c08, nametouse=0xbfffcedc "./agssave.001.Qfg2Sav") at ac.cpp:24157
#6  0x08115fb6 in do_game_load (nametouse=0xbfffcedc "./agssave.001.Qfg2Sav", slotNumber=1, descrp=0x0, wantShot=0x0) at ac.cpp:24697
#7  0x081160bd in load_game (slotn=1, descrp=0x0, wantShot=0x0) at ac.cpp:24725
#8  0x081166f0 in load_game_and_print_error (toload=1) at ac.cpp:3229
#9  0x081169e5 in post_script_cleanup () at ac.cpp:3373
#10 0x08116c47 in run_script_function_if_exist (sci=0x8677090, tsname=0x8225704 "interface_click", numParam=2, iparam=32, iparam2=0, iparam3=0) at ac.cpp:3537
#11 0x08116ed3 in run_text_script_2iparam (sci=0x8677090, tsname=<value optimized out>, iparam=32, param2=0) at ac.cpp:3634
#12 0x081172e3 in process_interface_click (ifce=32, btn=0, mbut=1) at ac.cpp:5661
#13 0x08119409 in process_event (evp=0xbfffd910) at ac.cpp:5205
#14 0x08119d3d in processallevents (numev=4, evlist=0x8232260) at ac.cpp:5238
#15 0x08119d78 in update_events () at ac.cpp:5248
#16 0x0811b862 in mainloop (checkControls=true, extraBitmap=0x0, extraX=0, extraY=0) at ac.cpp:26641
#17 0x0811bd49 in main_game_loop () at ac.cpp:26775
#18 0x08123fe8 in initialize_start_and_play_game (override_start_room=0, loadSaveGameOnStartup=0x0) at ac.cpp:27938
#19 0x08125b92 in initialize_engine (argc=2, argv=0xbffff484) at ac.cpp:29308
#20 0x080815b3 in main (argc=2, argv=0xbffff484) at ac.cpp:28363

When run game under wine, no problem occurs.
Hope that helps,

S.

SMF spam blocked by CleanTalk