Page 1 of 1

Can't run mods

Posted: Fri Jun 15, 2007 8:57 am
by Mar
I feel like such a moron not being able to get this to work, but I need help...

So at any rate, when I start the exult app, and click "SHOW MODS" I get the error:
Description missing!
WRONG EXULT VERSION

This happens whether I click on "SHOW MODS" under either Black Gate or Serpent Isle. I've got versions of both with SS and FoV pre-installed in my versions of both games. I've tried this with both the Keyring mod, and the SIfixes mod. The following is what I've done, in order of what I think is the most pertinent information:

1) Compiled the newest version of exult on my PowerPC OS X, running OS version 10.4.9, and gcc 4.0.1 (although when I watched the compiler, I think exult specifically used gcc 3.3 sometimes?)

2) Correctly set the config/disk/game/blackgate/path and the config/disk/game/serpentisle/path variables in the exult.cfg file to be able to play both games WITHOUT the mods

3) There was NO variable for the mods directory, so I simply created a "mods" directory in my ULTIMA7 directory and my SERPENT directory

4) Unzipped Keyring, so that within the ULTIMA7/mods directory is the "Keyring" directory and the "Keyring.cfg" file

5) Unzipped sifixes, so that within the SERPENT/mods directory is the "sifixes" directory and the "sifixes.cfg" file

6) Verified that in both the Keyring.cfg and sifixes.cfg files, the XML code for modinfo/required_version is "1.4.03cvs" (I had to change the sifixes.cfg file, b/c it originally said "1.4.01cvs")

7) Verified that when I run "./exult --version" it gives me the following:
Exult version 1.4.03cvs
Built at: Jun 15 2007 07:21:40
Compile-time options: USE_TIMIDITY_MIDI, USE_FMOPL_MIDI, HAVE_ZIP_SUPPORT
Compiler: gcc, version: 4.0.1 (Apple Computer, Inc. build 5367)

Platform: Mac OS X

8) Verified that when I run "./exult" by itself, it says "1.4.03cvs" in the bottom right-hand corner

9) If I try to manually force and run "./exult --bg --mod Keyring" It exits with the error embedded in the output:
Mod 'Keyring' is not compatible with this version of Exult.
Could not find any games to run; leaving


So I'm kind of stuck. I used to code C++ 5 years ago back when I was a programmer, so I can code-walk if I know which file to edit, where to edit it, and how to get cout statements to echo on the screen, but there's so much code here I don't even know where to begin. Could somebody possibly help a guy out? Thanks...


Mar

Re: Can't run mods

Posted: Fri Jun 15, 2007 9:26 am
by marzo
What does Exult say the game path settings are in stdout? Does it work with the plain games (i.e., without using any mods)? Can you try converting the mod cfg files to different line endings?

Re: Can't run mods

Posted: Fri Jun 15, 2007 11:21 am
by Mar
1) Stdout doesn't have any error codes that show what the game path settings are

2) Yes, it works with the plain games w/o the mods

3) I have no idea what you mean by "converting the mod cfg files to different line endings"


Playing with adding some std::cout error codes in the modmgr.cc file in the classes ModManager and ModInfo, I've figured out that it FINDS the cfg files no problem, but for some reason it's not parsing the XML.

For example, when it's running ModInfo for the first time, mod_title defaults to "Keyring", menustring defaults to "Description missing!" and modversion defaults to "0.0.00R" This seems weird to me since when I cout filenames in the ModManager call, it correctly states the full path of the cfg file to be "../ULTIMA7/mods/Keyring.cfg"

Re: Can't run mods

Posted: Fri Jun 15, 2007 11:42 am
by Malignant Manor
Sounds like "Keyring.cfg" needs its' text mode converted from DOS to UNIX like Marzo suggested.. You can use ToFroWin or ConTEXT to convert the document.

Re: Can't run mods

Posted: Fri Jun 15, 2007 12:00 pm
by Mar
FOUND IT!!!

Looks like Configuration.cc was hardcoded poorly for OSX. Am I really the only person who's tried to run mods on OSX?!?! (Or BEOS? It looks like this would happen on BEOS too)

Basically, Configuration.cc was hardcoded to force anything that calls read_config_file to go to the user's home Preferences directory, which is found in /Users//Library/Preferences.

Consequently, when ModManager created a new modcfg, and the constructor called Configuration::read_config_info, it would automatically add that string to the beginning of the filename.

To help you see exactly what I mean, when you call Configuration("exult.cfg", ""), the constructor would parse the file "/Users//Library/Preferences/exult.cfg", which is fine. That's exactly where exult.cfg needs to be

But then when ModManager calls Configuration("../ULTIMA7/mods/Keyring.cfg", ""), the constructor would parse the file "/Users//Library/Preferences/../ULTIMA7/mods/Keyring.cfg"

Of course, you wouldn't find the file. The file isn't there!!!



I created a TEMPORARY fix, by commenting out the following lines in Configuration.cc:
if(f1)
{
// User has a home directory
fname=f1;
#if defined(BEOS)
fname+="/config/settings/";
#elif defined(MACOSX)
fname+="/Library/Preferences/";
#else
fname+="/.";
#endif
fname+=input_filename;
}
else


This basically forces me to put the exult.cfg file in the directory where I run exult, which I don't think the original programmers wanted, but it's a temporary workaround. Umm, how do I report a bug to fix?

Re: Can't run mods

Posted: Fri Jun 15, 2007 1:17 pm
by Mar
nvm...found the "bug reporting" link. thx for the help and advice!

Re: Can't run mods

Posted: Sat Jun 16, 2007 8:50 am
by tw
I have ultima collection and i tried to run exult but i still cant play ultima 7

Re: Can't run mods

Posted: Sat Jun 16, 2007 9:44 am
by Dominus
tw: please no further thread hijacking.
So can you tell us on which OS you are running Exult and please copy paste the contents of stdout.txt here (the file can be found in Exult's folder.