Page 1 of 1

Installing Exult on OS X

Posted: Sat Mar 08, 2008 2:41 am
by Matt
Just gave up on installing Exult on OS X. What should be a drag-and-drop install with some clear instructions on where to put the static game resources instead ended up with me spending about 90 minutes futzing around with it.

First of all, it seems like Exult assumes the default directory structure. I tried to move the data directory to a different location and Exult complained to the system log that it couldn't find exult.fix, so I moved it back. Then I spent a good deal of time trying to figure out where exactly to put the game data but no matter where I put it, Exult couldn't find it. Even though I modified the paths correctly as per the readme, it insisted on finding both sets of game data in static/ underneath data/. But you can't mix the game data, so how's that supposed to work? And why does it ignore my settings?

I've used Exult before, back in its early days, and played through Black Gate again. Installing on Windows was a breeze. Why can't installation on OS X be just as easy? Package the application like a normal .app--with predefined directories where resources go within it, and skip all the path configuration stuff. Just tell me where to put that stuff. Make it to where I can just drop it into my games directory like every other game for OS X. I'm not even asking for a Cocoa menu with a preferences option or anything. :-)

As it stands right now, it'd be easier to run the original DOS version using Boxer (http://boxer.washboardabs.net/) and roll the entire directory into one package. I'd rather get cool stuff like native resolution, though, but I shouldn't have to run it through Parallels when there's already a native port.

Can one of the developers focus on making it more Mac friendly, please? It would probably be something as simple as making a few changes to the build automation. Perhaps a directory structure like this:

Exult.app/
--Data/
--Resources/
----The Black Gate/
----Serpent Isle/
--Saved Games/
----The Black Gate/
----Serpent Isle/

And one side note, I frequently saw the following errors:

Mar 8 02:59:09 local exult[1531]: Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
Mar 8 03:00:47 local [...]/Ultima VII.app/Contents/MacOS/exult[1538]: CPSGetCurrentProcess(): This call is deprecated and should not be called anymore.
Mar 8 03:00:47 local [...]/Ultima VII.app/Contents/MacOS/exult[1538]: CPSSetForegroundOperationState(): This call is deprecated and should not be called anymore.

Thanks,
-Matt

Re: Installing Exult on OS X

Posted: Sat Mar 08, 2008 2:41 am
by Matt
Forgot to mention that I'm using the latest version of OS X, 10.5.2, along with the latest build of Exult available for download (1.2).

Re: Installing Exult on OS X

Posted: Sat Mar 08, 2008 3:36 am
by marzo
You seem to have missed this (for the location of Exult.cfg on OSX) and this (how to specify the paths in Exult.cfg).

Re: Installing Exult on OS X

Posted: Sat Mar 08, 2008 12:28 pm
by Matt
Thanks for the response. No, I wish it were that simple. I read both thoroughly during my attempt, along with any other documentation available.

From the first post: "Even though I modified the paths correctly as per the readme..."

Changing the paths in the config file sort of half-worked part of the time.

Are there OS X users out there who have installed the latest release of Exult on their machines and defined custom paths? It may just be that no one has tested it.

-Matt

Re: Installing Exult on OS X

Posted: Sat Mar 08, 2008 12:54 pm
by Dominus
First of all, it seems like Exult assumes the default directory structure. I tried to move the data directory to a different location and Exult complained to the system log that it couldn't find exult.fix
What did you do exactly? And when you change locations you need to set paths properly in the cfg.
Why can't installation on OS X be just as easy?
It's as easy as it can be atm. You just have to edit the paths in the cfg file. No big magic there.
Can one of the developers focus on making it more Mac friendly, please? It would probably be something as simple as making a few changes to the build automation. Perhaps a directory structure like this:...
this is not the way it should be according to apple program design laws or so. Mixing data files with user files (like savegames)... but I'm no expert...
Changing the paths in the config file sort of half-worked part of the time.
please elaborate.

what are the paths you have been putting into .exult.cfg? Better yet, please tell us where the location of the file called usecode for both BG and SI are (it should be in pathtoBG/static/usecode or pathtoSI/static/usecode) and please copy paste the contents of ~/Library/Preferences/exult.cfg here.

Re: Installing Exult on OS X

Posted: Mon Mar 10, 2008 11:07 am
by Whiskey Tango Foxtrot
I was having problems like you, than tried to build the latest snapshot. I think no one working on the project has OS-X anymore, or they are completely ignoring it. Right now trying to get exult running on Leopard is a lost cause. I broke down and installed it on a windows VM, which was annoying, but I couldn't get any help with the Leopard problems.

Re: Installing Exult on OS X

Posted: Mon Mar 10, 2008 2:04 pm
by marzo
I think no one working on the project has OS-X anymore, or they are completely ignoring it.
I think the former is the correct option; but we would gladly accept any patches that make Exult run on OS-X.

Re: Installing Exult on OS X

Posted: Mon Mar 10, 2008 7:07 pm
by madrak
Ok, now you did it, I have to come out of the woodwork, a painful process for all.

About three pages back is a thread about how some of use have gotten the Exult snapshots to compile on Leopard;

http://exult.info/forum/viewtopic.php?p=170356#p170356

I am also keeping notes that I follow whenever I think I want to try out a newer snapshot. For completeness I will paraphrase them here in the hope that they help someone (or a developer notices). :-)

1) Install the SDL libraries from either Mac Ports or Fink.

2) Leopard doesn't include libtoolize which is needed by autogen.sh, it does include glibtoolize however, since I am lazy, rather then change everywhere in exult that looks for it I just created a link:
$ sudo ln -s /usr/bin/glibtoolize /usr/bin/libtoolize

3) This is very important. Giving credit where credit is due, Jolyon supplied this fix. He submitted a patch for this, but I haven't seen this fixed yet (nudge, nudge). The file exult/audio/midi_drivers/CoreAudioMidiDriver.cpp needs an additional header added to it otherwise the compile fails. Add the following text after the comment at the top of the file:
#include

4) Depending on where your SDL libraries are installed you may have to modify autogen.sh. Autogen.sh in the the exult root. In my case I use Mac Ports and my SDL libraries are in /opt/local. The file as it exists in the snapshot has the /usr/local path coded in it. To fix it I served up some perl pie:
$ perl -pi -e 's/\/usr\/local/\/opt\/local/g' autogen.sh

5) Generate the configuration file using autogen.sh
$ ./autogen.sh

6) Run configure to create the Makefile:
$ ./configure

If your makefile was generated correctly you should see the following after running configure:

SDL ....................... : 1.2.12
Build tools................ : yes
Build ExultStudio.......... : no

If you don't get that you have library issues and may need to pass location to configure (or other general debugging).

7) Now the part where, depending on the speed of your mac, you can get a cup of coffee and read the paper. You are ready to build the binary. I usually run make and make bundle in the same command. If you use the logical and it will only try to make the bundle if the first make succeeds.
$ make && make bundle

Done. Assuming that it worked properly, you now have a working Exult.app. But, you aren't done yet. You need to populate the exult directory with the contents of the data directory that match the version of Exult you compiled. To do this I run a little script after I compile Exult. FYI, I keep Exult in /Games/Exult. Below is my script:


#---- Start Script ----
# Populate Exult directory:

#!/bin/sh
EXULT_HOME=/Games/Exult

# Clean out directories before copying
rm -r ${EXULT_HOME}/Exult.app
rm -r ${EXULT_HOME}/docs

# Executable
cpMac -r exult/Exult.app ${EXULT_HOME}

# FLX Files
cp exult/data/exult.flx ${EXULT_HOME}/data
cp exult/data/exult_bg.flx ${EXULT_HOME}/data
cp exult/data/exult_si.flx ${EXULT_HOME}/data
cp exult/data/midisfx.flx ${EXULT_HOME}/data

# Misc Files
cp exult/AUTHORS ${EXULT_HOME}
cp exult/COPYING ${EXULT_HOME}
cp exult/NEWS ${EXULT_HOME}
cp exult/README ${EXULT_HOME}
cp exult/README.1st ${EXULT_HOME}
cp exult/README.MacOSX ${EXULT_HOME}
cp -r exult/docs ${EXULT_HOME}
#---- End Script ----


Note, if you are still having problems with your exult configuration file, I would be happy to post the pertinent portions of mine.

Good luck compiling, it seems to have become a game of its own to me. :-)

Re: Installing Exult on OS X

Posted: Tue Mar 11, 2008 3:38 am
by Jolyon
The "NSQuickDrawView" and "CPS*" errors seem to be from SDL, not Exult. If I'm feeling game I'll build the latest SDL from SVN, compile Exult against that and see how I go - the latest source doesn't seem to include these calls (at least my quick grep didn't show anything aside from some XCode examples). I don't think it's anything to be particularly worried about though. The calls still work - they just may be removed at some point in the future.

Re: Installing Exult on OS X

Posted: Tue Mar 11, 2008 4:32 am
by marzo
There are two patches available for OSX: this and this. Since I don't have OSX, I will have to rely on you guys: which patch does the job better? Also, it would be good if we didn't break Exult for pre-Leopard OSX; if anyone can also test *that* , it would be good.

Re: Installing Exult on OS X

Posted: Tue Mar 11, 2008 5:01 am
by Dominus
I assigned Fingolfin to the patches. He used to be our Mac developer and I hope he can find the time to look at it and decide which one to apply.
I just hope he won't mind since he has been kind of absent and I certainly don't want to pressure him into anything :)

Re: Installing Exult on OS X

Posted: Wed Mar 12, 2008 12:26 am
by Dominus
Fingolfin applied the second patch (and cleaned out some ScummVM references along the way). Thanks!!!

Re: Installing Exult on OS X

Posted: Sat Mar 15, 2008 5:18 pm
by John Carlock
Compiling worked here following madrak's instructions based on todays CVS. I have also correctly configured exult.cfg and tested it with version 1.2. After the Exult intro screen, when I click on one of the games, the window resizes to accommodate the game and Exult crashes. I could post the console output, or anything else that could be helpful. I'll try again tomorrow.

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 2:00 am
by marzo
I could post the console output, or anything else that could be helpful.
Please do.

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 8:39 am
by MeddlingMonk
When I first built the patched snapshot on my PowerBook, I could run BG just fine but not SI. The crash log said that exultmsg.txt was missing from Exult.app/Contents/Resources/data. It was easy enough, of course, to manually put the file where it belongs but of course 'make bundle' should be putting the file where it belongs. But that's a different problem from what John is describing, I think. Another thing I ran into even before the missing exultmsg.txt was that I couldn't even run exult until I made the data path read "/Applications/Exult.app/Contents/Resources/data", another thing I don't remember having had to do before, but that still doesn't seem like what John is describing although it wouldn't hurt if he makes sure that exultmsg.txt is in the app and put it there if it isn't and to make sure the data path is what I have above (but I expect it is if he's getting the game selection screen).

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 11:09 am
by John Carlock
Actually, MeddlingMonk, that was the problem! It should be added to the above script.

Thank you.

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 5:01 pm
by Matt
OK, I've cleared out a block of time to try this again, and I'm going to document my steps along the way. I'm probably setting myself up for failure from the beginning, since I'm using the pre-compiled binary instead of taking off from work for a few days to complete the 47 steps needed to compile it on Leopard. ;-)

After reading the various READMEs and the configuration file in ~/Library/Preferences/exult.cfg, I've placed the game data for The Black Gate and Serpent Isle under ~/.exult/blackgate/gamedat and ~/.exult/serpentisle/gamedat, respectively.

I'm tailing system.log. It says this:

Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Platform: Mac OS X
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Exult path settings:
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Data : data
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Digital music : data/music
Mar 16 17:25:42 local exult[1091]: Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Music player: Internal QuickTime MIDI player
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Black Gate : not found (./static/endgame.dat)
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: exult_bg.flx : found
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: Serpent Isle : not found (./static/sispeech.spc)
Mar 16 17:25:42 local [0x0-0xc20c2].Exult[1091]: exult_si.flx : found

For comparison, here is the relevant (unmodified) section in exult.cfg:




.


blackgate


/Users/matt/.exult/blackgate/gamedat


/Users/matt/.exult/blackgate




.


/Users/matt/.exult/serpentisle/gamedat


/Users/matt/.exult/serpentisle




So to reiterate my original post, Exult 1.2 for OS X is ignoring the path settings in exult.cfg.

Tried placing exult.cfg in the same directory as Exult.app and the data directory. Still looking in the wrong place.

Exult wants to find some static files under ./static, so I oblige and put The Black Gate's resources there. I can't put resources from both games, obviously. Huzzah, it works. Sort of. It's a tiny little window and doesn't go full screen despite me telling it to in the pre-game setup, and it only works with The Black Gate or Serpent Isle, but not both at the same time.

Finally, to respond to one comment:

"this is not the way it should be according to apple program design laws or so. Mixing data files with user files (like savegames)... but I'm no expert..."

Fair enough; here's a better structure, which follows Apple's guidelines:

/Applications/Exult.app/Contents/Resources/exult_bg.flx (etc.)
~/Library/Application Support/Exult/Resources/The Black Gate/...
~/Library/Application Support/Exult/Resources/Serpent Isle/...
~/Library/Preferences/exult.plist (exports to XML)

-Matt

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 5:17 pm
by marzo

Code: Select all


.

[snip]
 

.

[snip]
Exult wants to find some static files under ./static,
Of course it does: that is where you are telling it to look for it. By default (that is, if you don't edit any path settings other than ), Exult will assume that you have (using $gamepath as the path specified in ):

Code: Select all


    $gamepath


    $gamepath/static


    $gamepath/gamedat

You are overriding and , but not and you are leaving as '.'.
Mar 16 17:25:42 local exult[1091]: Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
Fair enough; here's a better structure, which follows Apple's guidelines:

/Applications/Exult.app/Contents/Resources/exult_bg.flx (etc.)
~/Library/Application Support/Exult/Resources/The Black Gate/...
~/Library/Application Support/Exult/Resources/Serpent Isle/...
~/Library/Preferences/exult.plist (exports to XML)
File a bug report (or two) and assign it to Fingolfin.

Re: Installing Exult on OS X

Posted: Sun Mar 16, 2008 7:30 pm
by Matt
"You are overriding and , but not and you are leaving as '.'."

No, I'm not doing anything. This is the default configuration.

Either way, this behavior is unintuitive. If there is an absolute path, it should be honored.

-Matt

Re: Installing Exult on OS X

Posted: Mon Mar 17, 2008 1:52 am
by Dominus
so where are the files that are in the static folder?
You need to give paths for savegame, gamedat and static (if the path in the setting is not correct)
"You are overriding and , but not and you are leaving as '.'."

No, I'm not doing anything. This is the default configuration.
yes, since we can't guess where people put the files, the default is ".", if that does not match you need to edit this.
If there is an absolute path, it should be honored.
yes and it will be honored, it's just that you didn't give an absolute path, only a relative path and that is not where the files are. Exult will honor the absolute paths for savegames and gamedat but it needs a path to find the most important stuff, the static files, too.

Re: Installing Exult on OS X

Posted: Mon Mar 17, 2008 3:38 am
by marzo
"You are overriding and , but not and you are leaving as '.'."
No, I'm not doing anything. This is the default configuration.
It is what the default configuration is doing; and if you do not edit the configuration file, as the installation instructions say you should, the you too, are doing it.
Either way, this behavior is unintuitive.
What behavior? Not setting a default path for the games in the default configuration file? As Dominus said, we have no way of knowing where people will put them; although maybe we could use a better default. How do "./blackgate" and "./serpentisle" sound as defaults? (That would basically be "./" plus the name of the game in Exult.cfg.)
If there is an absolute path, it should be honored.
It is, if you give Exult one. Since you haven't given Exult anything but "." (and, consequently, "./static"), it has no way of honoring it.

Re: Installing Exult on OS X

Posted: Mon Mar 17, 2008 2:31 pm
by Matt
"yes and it will be honored, it's just that you didn't give an absolute path, only a relative path"

I'm not trying to be flippant here, but... really?

/Users/matt/.exult/blackgate/gamedat, on every Unix-compatible system on the planet, is considered an absolute path. It's like you're saying something like C:\Program Files\Exult\Whatever is relative. It's just... not.

Appending one variable to another without taking this into account is a design flaw, not a mistake on the part of the user.

The problem is that you're expecting the user to conform to your expectations. That's backwards. When designing software, you should design for user expectations. That's just good design.

Step back for a moment and think about what is most intuitive for the user. Your goal should be to be able to set up Exult without having to even read a readme, let alone multiple readmes plus a FAQ.

Look at the default configuration on OS X again:




.


blackgate


/Users/matt/.exult/blackgate/gamedat


/Users/matt/.exult/blackgate




.


/Users/matt/.exult/serpentisle/gamedat


/Users/matt/.exult/serpentisle




Here's how I would expect this to function. Exult looks in . for exult_bg.flx and so on. And it looks in /Users/matt/.exult/blackgate/gamedat for Black Gate game resources.

I'm taking the time to report this as a flaw, but I imagine most users spend a few minutes with it and delete Exult. And I even read the readme. Most users won't bother; you can barely expect them to skim it.

-Matt

Re: Installing Exult on OS X

Posted: Mon Mar 17, 2008 3:51 pm
by marzo
"yes and it will be honored, it's just that you didn't give an absolute path, only a relative path"

I'm not trying to be flippant here, but... really?

.
Not trying to be flippant, but: yeah, really. That really looks like a relative path right there, now, doesn't it?
Here's how I would expect this to function. Exult looks in "." for exult_bg.flx and so on. And it looks in /Users/matt/.exult/blackgate/gamedat for Black Gate game resources.
You expect wrongly on both accounts, and you do so because you didn't read the docs carefully enough. Specifically:

Code: Select all

    * Savegames
      this is where Exult stores your savegames. [i]Normally you find these in
the dir set in .[/i]
    * Static
      the most important dir. [i]Here you have the data files from the original
game.[/i] You should never touch these files.
    * Gamedat
      contains the (dynamic) data for the game you're currently playing.
[i]It's where the "journey onward" 'savegame' is stored.[/i]

[i]If you don't change the location of either the Static or Gamedat
directories, Exult expects to find both directories in the path you
specified in .[/i] Don't ever point these two at the same
directory.
(emphasis added)

One piece of information which I admit is not very clear in the docs is that the "exult_??.flx" files are looked for in "./data" unless you override this with a tag (although it is there). Just to drive the point home: the tag has nothing at all to do with the "exult_??.flx" files; it is the default location to look for the original data (the static dir), save games and the current and active save game (the gamedat dir).
I'm taking the time to report this as a flaw
The only flaw is that the default values of is... well, kind of bone-headed. It *should* be something like "./blackgate" and "./serpentisle", as I suggested above, and that is something I will be addressing.

Re: Installing Exult on OS X

Posted: Tue Mar 18, 2008 12:13 am
by Dominus
*noted that data_path needs some explaining much, much earlier* but concerning matt's problems, I'm with Marzo.

Re: Installing Exult on OS X

Posted: Thu Mar 20, 2008 6:43 am
by nadir
Can't we switch to a simpler "properties" file, just like Pentagram uses (somewhat similar to windows ini files) ?

Tristan

Re: Installing Exult on OS X

Posted: Thu Mar 20, 2008 9:58 am
by Dominus
Nah, too easy :)
(though I would love it, the XML stuff is good but not user friendly and never will be - I'm really glad Pentagram switched early to an ini format)

Re: Installing Exult on OS X

Posted: Mon Mar 31, 2008 7:34 am
by JP
Oh my.

I just got a new iMac that replaced my dying PC. I don't play many games anymore, but Exult has always been on my "must" list.

I've read through this thread and I'm still left wondering... So does Exult play nice with the latest Leopard? Assuming I *carefully* read and follow the docs? ;)

I'm going to be trying Crossover Games for UO (the other "must" game of mine) and I'm wondering which would be easier to configure for Exult... the native OSX port or the Crossover emulation?

Thanks

Re: Installing Exult on OS X

Posted: Mon Mar 31, 2008 7:48 am
by Dominus
Actually I'd recommend compiling current CVS for Leopard. The 1.2 OSX release version was for the PPC Mac and in another thread we heard that it is not that nice to play on Intel Macs :(