Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - scottchiefbaker

#101
Engine Development / Re: AGS engine Linux port
Mon 28/01/2013 21:10:04
Ubuntu does the same thing with libaldmb.so.1. I think perhaps it's a bug? No other distros do that, and it seems to be only for aldmb, as allegro is properly versioned and symlinked. Since the distros symlink properly:

lrwxrwxrwx 1 root root     15 Sep 14 09:09 liballeg.so -> liballeg.so.4.4
lrwxrwxrwx 1 root root     17 Sep 14 09:09 liballeg.so.4.4 -> liballeg.so.4.4.2
-rwxr-xr-x 1 root root 915840 Jan 12  2012 liballeg.so.4.4.2

Can we just link against liballeg.so and let the distro handle passing it off the specific version of the library. Or are we back to trying to figure out a static build?

Also, does AGS use any specific stuff from allegro 4.4, or would it work with 4.2 also?
#102
Engine Development / Re: AGS engine Linux port
Mon 28/01/2013 18:44:42
Quote from: BigMc on Sun 27/01/2013 23:39:20
When using the distributions Allegro, two binaries should be enough: one using Allegro 4.2 and one 4.4.

Wouldn't we need a 32bit and a 64bit one of each also?
#103
Engine Development / Re: AGS engine Linux port
Mon 28/01/2013 16:03:49
I do think we should try and strive for a cross-distro compatible binary. Once we have that, it will really open up the sale of adventure games on Linux/Steam/Humble Bundle. Maybe someone with more experience with the build system could build static binaries? I'd be happy to host them, if someone can build them.

FFMPEG offers static builds by community members:

http://ffmpeg.gusari.org/static/
#104
Engine Development / Re: AGS engine Linux port
Mon 28/01/2013 01:12:57
Here is the binary/package that I came up with as a demo for Wadjet. It was compiled and works great on 64bit Fedora 17, using Allegro 4.4. Anyone have Ubuntu, Mint, Suse handy they could test this against?

http://www.perturb.org/tmp/shivah.tar.gz
#105
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 23:04:09
Wow I think that's a little beyond my ability. If Wadjet wants a simple way they can offer ags to Linux clients, are they going to have to build ags for each major distro? Is there another way to make a "universal binary?"
#106
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 18:37:31
Good question. Is that something that needs to be built ahead of time? I just assumed they would be built on the fly when we compile ags statically.
#107
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 18:05:00
If I change the makefile to remove -pie, -fpie and add -static:

CFLAGS = -O2 -g -static -fsigned-char -Wfatal-errors -DNDEBUG -DAGS_HAS_CD_AUDIO -DAGS_CASE_SENSITIVE_FILESYSTEM -DALLEGRO_STATICLINK -DTHIS_IS_THE_ENGINE -DLINUX_VERSION -DDISABLE_MPEG_AUDIO -DBUILTIN_PLUGINS -DRTLD_NEXT $(shell pkg-config --cflags freetype2)

Everything compiles, but I get an error on linking:

Linking common library...
Linking engine...
/usr/bin/ld: cannot find -lalleg
/usr/bin/ld: cannot find -laldmb
/usr/bin/ld: cannot find -ldumb
collect2: error: ld returned 1 exit status
make: *** [ags] Error 1
#108
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 16:15:55
I see -DALLEGRO_STATICLINK in the Makefiles-defs.linux file. Looks like it's already set?

Also, if I add -static the CFLAGS I get:

Linking engine...
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.7.2/crtbeginT.o: relocation R_X86_64_32 against `__TMC_END__' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/crtbeginT.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [ags] Error 1

Unless -static is positional somehow?
#109
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 01:57:19
Quote from: Sslaxx on Sun 27/01/2013 01:13:47
My understanding is he wants to do a static build against Allegro 4.4?

I'm not very good at C or Makefiles, what do I need to do to build a static binary? Ultimately we should add an option to Makefile to allow a static build.
#110
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 00:24:55
I was trying to make a "universal" binary that would be portable on different machines/distros. At least get the low hanging fruit: Ubuntu, Fedora, Mint in one binary.
#111
Engine Development / Re: AGS engine Linux port
Sun 27/01/2013 00:12:23
Is there a way to make a static build of ags? I'm seeing that the executable I made links against allegro 4.4, which my target machine doesn't have.
#112
Engine Development / Re: AGS engine Linux port
Sat 26/01/2013 23:52:59
getopt is freaking phenomenal. At least look at it before you implement your own. No sense in re-inventing the wheel when getopt is already done, and very powerful. Are you sure getopt isn't available on Windows? It should come with glibc, which you can get from cygwin if nothing else.

If we can't get getopt on Windows, I don't think that's a big deal. You already have the short version strings.
#113
Engine Development / Re: AGS engine Linux port
Sat 26/01/2013 23:10:12
Quote from: Crimson Wizard on Sat 26/01/2013 23:01:01
Quote from: BigMc on Sat 26/01/2013 22:58:50
They are already there, but called "-windowed" and a "-fullscreen".
Regarding this, I think we could eventually bring the cmdline params to standards? Like making a short alias preceded by '-' and long alias preceded by '--'.

I totally agree with this. Not sure how you're doing it, but if you're using getopt you get that functionality for free.
#114
Engine Development / Re: AGS engine Linux port
Sat 26/01/2013 23:09:22
That's awesome! I'll work on packaging up some Linux releases. What are the default places for game data?

(Unable to find game data file in any of the known locations.)

Here is what I have founds works:

#1) ./ags something.exe
#2) ./ags /path/to/dir
#3) ./ags

#3 works if you're in the dir with a .exe in it? If we were to do Linux release we probably don't want to include a .exe file. Could we use something like ./ags agsdata.bin to launch? Where agsdata.bin is just the .exe file renamed?

Ideally I'd just rename ags to "resonance" or whatever is appropriate, and let the binary "find" where the data files are.
#115
Engine Development / Re: AGS engine Linux port
Sat 26/01/2013 22:48:05
I'd like to request an addition to the ags Linux launcher. Can we add a "--windowed" and a "--fullscreen" option at the command line that would override whatever is in the config file?
#116
Engine Development / Re: AGS engine Linux port
Sat 26/01/2013 00:05:45
I just updated and recompiled ags from the master branch and it plays and runs VERY smooth. I played through most of the Primordia demo and didn't run in to any issues. I think the tree is ready to see some real releases. I'd be happy to help get them packaged up and tested.
#117
Engine Development / Re: AGS engine Linux port
Sat 22/09/2012 05:49:27
Just rebuilt and played through 75% of the Kings Quest I remake and everything worked flawlessly. Good work!
#118
King's Quest 3, and Resonance save/load just fine. Seems like something is amiss with KQ1 and KQ2.
#119
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.
#120
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
SMF spam blocked by CleanTalk