[OLD-1] AGS engine Linux port

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

Previous topic - Next topic

s_d

Thanks, AGA!  I've replied to Electroshokker via PM, and CC'ed you and CJ, as well.  Hopefully we can get me going with this code without bothering anyone else  (nod)

s_d

#421
A couple of updates;  first, CJ himself has replied to me, and CC'd Electroshokker (who generously offered to spend some time to dig up his copy of the sources).  So, after he provides those, I'll get it building (for libraries circa glibc version 2.13), and then bring it into a Github pull request, with some instructions, etc.  So, that was really good news  :)

Second, I've built a new distributable ags+libraries (hopefully for another round of beta in the various communities running these).  Primarily, this contains the Allegro driver change and CW's new version numbering changes (SHA 3175c1a511da7f5cfb0f428d7308e6e933cb1486).  The best place I have to host it freely is on Google Drive.

EDIT:  Link removed.

BigMc

Quote from: s_d on Sat 23/03/2013 06:06:53
Second, I've built a new distributable ags+libraries

Great! Was the process documented well enough? Did you make sure to build the 32 bit executable with rpath "lib32"? If you use the debian stuff to build in a chroot, that works by setting the  environment variable DEB_BUILD_OPTIONS=rpath=lib32

Sslaxx

Dunno if anyone else has had this happen to them, but AGS has stopped compiling for me using Raring (Ubuntu 13.04), saying "make: *** No rule to make target `/usr/include/c++/4.7/i686-linux-gnu/bits/c++config.h', needed by `libsrc/hq2x/hq2x3x.o'. Stop." - http://ubuntuforums.org/showthread.php?t=2129526&p=12574958 is the thread related to the issue on the Ubuntu forums.
Stuart "Sslaxx" Moore.

BigMc

#424
build-essential is installed right?

EDIT: There's just /usr/include/c++/4.6/i686-linux-gnu/bits/c++config.h and /usr/include/i386-linux-gnu/c++/4.7/bits/c++config.h. Does make distclean; ./configure fix it?

Sslaxx

Quote from: BigMc on Tue 26/03/2013 17:10:20
build-essential is installed right?
Yup. It compiled just fine until last night. Raring is still in development, so it could easily be an error of omission on Ubuntu's part in their package changes. Of course, it could also be part of other package changes, which could mean having to find out what dependency/ies have to be installed to fix it. So long as it isn't something being removed, I guess.
Stuart "Sslaxx" Moore.

BigMc

Forget distclean. I forgot that this is a custom Makefile. Looks like a Ubuntu fuckup.

MrProsser

I decided I wanted to check out the Linux port today and earlier on I was trying to build the Linux engine under lubuntu 12.10. I kept running to a problem. When I run make --directory=Engine I get an error telling me that allegro.h does not exist.
Quotelibsrc/alfont-2.0.9/alfont.c:14:21: fatal error: allegro.h: No such file or directory

Should this be included with ags? Or do I have to get it myself somehow? I have liballegro4.4.

BigMc

You have to install liballegro4.2-dev. Please read debian/README.md.

MrProsser

Shoot, it was a stupid thing. I had originally installed 4.2 when going through the readme, but I missed the fact that the dev one was required.


BigMc

liballegro4.2-dev contains the dev files of Allegro 4.4.

Cheeseness

Hi fellow Linux shaped devpersons.

I'm packaging an AGS title for Linux for a friend of mine (who'd prefer that the title wasn't publicly announced for Linux prematurely), and I've been encountering audio issues with Pulse (which I've seen mention of in this thread) with my builds. I'd like to resolve these before we start broader testing and would consider an interim workaround if anybody's got any ideas (using padsp to force alsa doesn't help, and I haven't had much luck with any cfg settings either).

It sounds like the resolution for this that's currently being pursued is the Allegro5 port which Crimson Wizard and s_d (?) have been talking about. I have a tiny bit of allegro experience, but I don't feel like I have enough familiarity with how AGS' innards work to try tracking this down, and I don't have enough availability to sink my teeth into the Allegro5 porting effort. I can certainly offer encouragement though :D

So far I've been using Allegro4.4. I've noticed that some are talking about 4.2 - are there any know issues with 4.4 and AGS that I might have missed?


I also read a few pages back that people had been working on config generation scripts (and trying to get ahold of source for a UI?). I had planned to make something quick and dirty using Zenity, but if there's other stuff in the works, I might be able to throw a little time at helping things move forward.

Cheese

xenogia

I noticed that the anti-aliasing option under the Linux engine doesn't work.  Is there any reason why this doesn't work? Or is it just not implemented?

BigMc

I think antialiasing is provided by DirectX on Windows and if it works on mobile platforms then by OpenGL. The Linux engine uses software rendering.

JJS

Antialiased sprite drawing is also available for the software renderer. I made a quick test and it works for me on Linux (tried with Pleurhburg and Ben Jordan 8) when I force the option via the acsetup.cfg file.
Ask me about AGS on PSP, Android and iOS! Source, Daily builds

xenogia

Interesting it didn't work for me when I had the game display at x2 with Antialiasing enabled via the winsetup.exe program.  The reduced scaled sprites looked considerably uglier than when loading it up in Wine.

xenogia

#437
I just realised what I'm talking about is not just anti-aliased sprites. But the whole filter.


Code: AGS
gfxfilter=AAx3



Considering as you said it is a software render this isn't possible at all.


EDIT: Also to note - there is no vSync on AGS games under Linux.  I notice tearing during fade in and out transitions and in some animations.  Though if I run the game under Wine there is no tearing at all.

s_d

Sorry to go off the ranch for so long, people.  It was because of Stuff & Things.   :(

No code from Electroshokker yet, but I don't want to push him very hard (he may have Stuff & Things as well).  I'll send another gentle nudge and hope he doesn't become upset.

Quote from: BigMc on Sat 23/03/2013 09:09:36
Quote from: s_d on Sat 23/03/2013 06:06:53
Second, I've built a new distributable ags+libraries

Great! Was the process documented well enough? Did you make sure to build the 32 bit executable with rpath "lib32"? If you use the debian stuff to build in a chroot, that works by setting the  environment variable DEB_BUILD_OPTIONS=rpath=lib32

Man, BigMC... I totally messed up the RPATH setting!!  Many apologies.  Discovering what I did wrong there led me down a rathole to discover that I'd had some linking funny business all along... namely, I was linking to both A4.2 and A4.4 at the same time (?!).  At any rate I massaged both of my build roots (32 & 64) and believe that all is correct now, according to 1) ldd, 2) objdump, 3) testing.

URL: https://docs.google.com/file/d/0B6N-Dop3H_3IaG0tWF9vM2JtalU/edit

Thusly, I would be ever so grateful if you would give these a test-drive on Wheezy for me (we don't support Squeeze, right?).  I'm running Gentoo (by choice) & Ubuntu (for game dev) and currently have no Debian boxen set up for testing (nor Fedora, but I'm pretty comfortable with scottchiefbaker testing the RH-flavoured distros).

s_d

Hey, Cheese, what's up?  :)

Quote from: Cheeseness on Thu 02/05/2013 09:13:42
I'm packaging an AGS title for Linux for a friend of mine (who'd prefer that the title wasn't publicly announced for Linux prematurely), and I've been encountering audio issues with Pulse (which I've seen mention of in this thread) with my builds. I'd like to resolve these before we start broader testing and would consider an interim workaround if anybody's got any ideas (using padsp to force alsa doesn't help, and I haven't had much luck with any cfg settings either).

It sounds like the resolution for this that's currently being pursued is the Allegro5 port which Crimson Wizard and s_d (?) have been talking about. I have a tiny bit of allegro experience, but I don't feel like I have enough familiarity with how AGS' innards work to try tracking this down, and I don't have enough availability to sink my teeth into the Allegro5 porting effort. I can certainly offer encouragement though :D

So far I've been using Allegro4.4. I've noticed that some are talking about 4.2 - are there any know issues with 4.4 and AGS that I might have missed?

Ooh, exciting!  Another title!

Regarding the Pulseaudio corruption issue, yes, it is (sort of) known.

What are you running?  What is the nature of your Pulse glitches? The reports are of simultaneously distorted audio and playback speed.  Does that sound familiar?  I have a couple of video clips from GR and The Shivah demo I've been meaning to put up on YouTube for reference.  Everyone who has encountered the corruption bug (who I've been able to get to try it) has successfully reset their audio by restarting Pulse ("pulseaudio -k").  It has been reported that the problem is exacerbated in "windowed" mode by switching window focus out of the game (during gameplay), especially into another program using Pulse (for me, switching to a browser running flash does it almost every time... a fact that I can use to reproduce the problem for debugging/fixing purposes).

We have no reason to think that A5 will do anything to help this whatsoever, as it doesn't seem like an A4/Pulseaudio problem specifically (nobody is reporting this issue on other A4 Linux games).  Personally, I think it is 80% something we're doing, and 20% a Pulseaudio corner-case (which has, by the way, been reported to no longer occur on Ubuntu 12.10, which would be good to verify). A5 is mostly for the Mac port (and a little future-proofing in general).  Ideally, CW & I (and anyone else willing, who can do) would abstract the graphics, audio, and control API's enough to even make Allegro replaceable. Recently, I've had some personal challenges, and frustratingly, my work there has not progressed as I've wanted.  I am committed to working on it, though.

Quote from: Cheeseness on Thu 02/05/2013 09:13:42
I also read a few pages back that people had been working on config generation scripts (and trying to get ahold of source for a UI?). I had planned to make something quick and dirty using Zenity, but if there's other stuff in the works, I might be able to throw a little time at helping things move forward.

Well, Electroshokker built this:  http://www.adventuregamestudio.co.uk/forums/index.php?topic=37968.msg501047#msg501047

...which apparently worked really well, and properly configured DIGIMID for ALSA (one bug report came from a Slackware user who was Pulse-free... setting up the proper DIGIMID index in the acsetup.cfg fixed his wagon).  I'm fairly content to continue porting forward the util, once code appears.

scottchiefbaker has a simple generator script in-place for the Gemini Rue beta which may be sufficient until we have a GUI.  Perhaps he'll share it with you?


SMF spam blocked by CleanTalk