Exult broken on Vista and Windows 7;
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Exult broken on Vista and Windows 7;
Exult has a number of serious compatibility bugs on Windows Vista and Windows 7 (and any Windows XP user who's not an administrator):
Assuming the game is installed at C:\Program Files\Exult and that BG and SI are installed as subdirectories to Exult, the following files are written:
* Exult.cfg
* stderr.txt
* stdout.txt
* Save games
* The "gamedat" folder for each game
All of those file modifications will fail with an "access denied" error. Why? Applications are NOT permitted to write to C:\Program Files at runtime! This has been true since NT 4, but (ahem) buggy software kept writing to it. In Vista, Microsoft finally got fed up and blocked all writes by switching administrator users down to standard users.
What does this mean? Well, on Vista and 7 one of two things happens:
1) You need to run Exult in compatibility mode and "elevate" to administrator every time it's run. This is the equivalent of requiring the use of "sudo" to run Exult on Linux (which I doubt you require on that platform..?)
2) Vista detects Exult's bugs and redirects writes to a "compatibility" location. Do you see a directory at C:\Users\\AppData\Local\VirtualStore\Program Files\Exult ?
http://msdn.microsoft.com/en-us/library/bb963893.aspx
Here's what I'm proposing:
* Modify Exult to store "system" configuration in the common app data folder. This needs to use the "well known folder id" (not hardcoded path). For example, C:\ProgramData\Exult\exult.cfg or C:\Documents and Settings\All Users\Application Data\Exult (or maybe this should be a per-user configuration since it's preference based...?)
* Modify Exult to store save games and gamedat in the current user's app data folder on Windows \Application Data\Local Settings\Exult\SerpentIsle\GameDat (or whatever the per-user non-roaming app data folder points to..)
* Modify Exult to store save games and gamedat in the "saved games" folder on Windows >= 6.0 (Vista and 7). For example, C:\Users\\Saved Games\Exult\Serpent Isle\.
* Output stdout.txt and stderr.txt to the current user's app data folder on all versions. C:\Users\\AppData\Local\Exult\stdout.txt
* Create a branch for release 1.4 in svn
* Rip out half finished (or universally loathed) features like "smooth walking" (or whatever it's called) from the release branch until they can be stabalized/fixed to the point of users actually wanting to use them (sorry!)
* Ship the sucker. Exult's trunk has been going under feature creep for too long and it's high time a line in the sand was drawn and the release was shipped. Configure Exult by default for a "classic" experience - point scaling at 2x or 3x at the standard ratio, standard player movement. I'd hazard a guess most people want U7 to "feel" the same as it did 15 years ago.
I can make the changes, but quite frankly I've had three or four Pentagram patches sitting in the queue for *YEARS* now and not getting integrated. If the current project admins are not interested in continuing with the project, please hand over the reigns.
TIME TO SHIP 1.4!
Assuming the game is installed at C:\Program Files\Exult and that BG and SI are installed as subdirectories to Exult, the following files are written:
* Exult.cfg
* stderr.txt
* stdout.txt
* Save games
* The "gamedat" folder for each game
All of those file modifications will fail with an "access denied" error. Why? Applications are NOT permitted to write to C:\Program Files at runtime! This has been true since NT 4, but (ahem) buggy software kept writing to it. In Vista, Microsoft finally got fed up and blocked all writes by switching administrator users down to standard users.
What does this mean? Well, on Vista and 7 one of two things happens:
1) You need to run Exult in compatibility mode and "elevate" to administrator every time it's run. This is the equivalent of requiring the use of "sudo" to run Exult on Linux (which I doubt you require on that platform..?)
2) Vista detects Exult's bugs and redirects writes to a "compatibility" location. Do you see a directory at C:\Users\\AppData\Local\VirtualStore\Program Files\Exult ?
http://msdn.microsoft.com/en-us/library/bb963893.aspx
Here's what I'm proposing:
* Modify Exult to store "system" configuration in the common app data folder. This needs to use the "well known folder id" (not hardcoded path). For example, C:\ProgramData\Exult\exult.cfg or C:\Documents and Settings\All Users\Application Data\Exult (or maybe this should be a per-user configuration since it's preference based...?)
* Modify Exult to store save games and gamedat in the current user's app data folder on Windows \Application Data\Local Settings\Exult\SerpentIsle\GameDat (or whatever the per-user non-roaming app data folder points to..)
* Modify Exult to store save games and gamedat in the "saved games" folder on Windows >= 6.0 (Vista and 7). For example, C:\Users\\Saved Games\Exult\Serpent Isle\.
* Output stdout.txt and stderr.txt to the current user's app data folder on all versions. C:\Users\\AppData\Local\Exult\stdout.txt
* Create a branch for release 1.4 in svn
* Rip out half finished (or universally loathed) features like "smooth walking" (or whatever it's called) from the release branch until they can be stabalized/fixed to the point of users actually wanting to use them (sorry!)
* Ship the sucker. Exult's trunk has been going under feature creep for too long and it's high time a line in the sand was drawn and the release was shipped. Configure Exult by default for a "classic" experience - point scaling at 2x or 3x at the standard ratio, standard player movement. I'd hazard a guess most people want U7 to "feel" the same as it did 15 years ago.
I can make the changes, but quite frankly I've had three or four Pentagram patches sitting in the queue for *YEARS* now and not getting integrated. If the current project admins are not interested in continuing with the project, please hand over the reigns.
TIME TO SHIP 1.4!
Re: Exult broken on Vista and Windows 7;
Since there are limited resources, I'd prefer to see them spend time enhancing actual features than trying to make it worthy of Windows logo certification. You'd have the same problem on DOSBOX if U7 was installed in Program Files, because it's U7 itself that writes to the install location, not DOSBOX. Running in compatibility mode is a reasonable solution.
Re: Exult broken on Vista and Windows 7;
I'd hardly consider this behavior as "broken". When you run Exult you mostly don't notice al these redirections that Windows does...
I'd say patch away and if someone sees fit it will be applied. As of when this will happen... who knows...
If you want to have a serios discussion about taking over the reigns or not applied patches, take it to the mailing lists as these are more likely to be read by all devs.
As for the original u7 experience I'd recommend Dosbox.
I'd say patch away and if someone sees fit it will be applied. As of when this will happen... who knows...
If you want to have a serios discussion about taking over the reigns or not applied patches, take it to the mailing lists as these are more likely to be read by all devs.
As for the original u7 experience I'd recommend Dosbox.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
Wasn't the whole point of Exult that it runs on modern platforms?
I just find it ironic that it doesn't support modern operating systems
Windows has had standard user accounts with limited permissions since 1993
I just find it ironic that it doesn't support modern operating systems
Windows has had standard user accounts with limited permissions since 1993
Re: Exult broken on Vista and Windows 7;
It IS a flaw that's right but you can hardly claim that it doesn't run on modern platforms. At least I was able to run Exult on windows 7 and (after a lot of compile problems) on OS X and I'm sure it runs on linux, too. What you describe are, in my view, small flaws thst DON'T prevent a user to run Exult...
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
-
- Site Admin
- Posts: 985
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
I don't think being brazenly insulting is a good way to get things accomplished. Pentagram is a separate project. You post make you out to be an @!#$ so far.
You can already setup the path per each game and mod. Forcing a directory is not a good idea.Modify Exult to store save games and gamedat in the "saved games" folder on Windows >= 6.0 (Vista and 7). For example, C:\Users\\Saved Games\Exult\Serpent Isle\.
There is a serious lack of bug testing/reporting for the svn. One example is a game breaking bug that would have been triggered by anyone playing through the beginning of SI that was reported months after it was broken. There is currently pretty much only one developer that actively spends his time fixing bugs and expanding Exult.it's high time a line in the sand was drawn and the release was shipped.
Re: Exult broken on Vista and Windows 7;
Installing Exult to a folder outside of C:\Program Files solves the problem easily. I keep all of my games installed to c:\games\ anyway.
Also, a shortcut to exult.exe can be set to run as administrator automatically.
Also, a shortcut to exult.exe can be set to run as administrator automatically.
-
- Posts: 26
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
So Microsoft created a folder that everyone should avoid because of stupid restrictions?
I can only say: Nice work, Flash.
I can only say: Nice work, Flash.
-
- Posts: 26
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
I have to add that is also is ridiculously easy to just shut off the UAC in Windows 7. Then Exult behaves exactly as as did in XP.
Re: Exult broken on Vista and Windows 7;
When running Exult or any game installed in Program Files and you aren't using an administrator account, you can still save games. But they aren't stored in the game's folder for saved games. So anyone can tell me where they're stored?
Re: Exult broken on Vista and Windows 7;
See Shadow Chaser's first post and there point 2)
C:\Users\\AppData\Local\VirtualStore\Program Files\Exult (or similar, depending on where you installed stuff)
C:\Users\\AppData\Local\VirtualStore\Program Files\Exult (or similar, depending on where you installed stuff)
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Re: Exult broken on Vista and Windows 7;
Do them and post them to the patch tracker; I will take a look at it.I can make the changes
Saying things like that only tend to alienate the people whose help you are trying to elicit, as the reaction to your post quite clearly demonstrated. The snide comments are even worse, especially given that Exult works perfectly fine in Linux and Mac OS X, and even Windows Vista (as if anyone really cared) and Windows 7 if you don't install it to Program Files.If the current project admins are not interested in continuing with the project, please hand over the reigns.
The restrictions are hardly "stupid": they are, in fact, basically the same restrictions you have in /bin, /usr/bin and /usr/local/bin directories in *nix (and several others, in fact). That is: programs should not write user-dependent data (say, configuration) in those directories, and users without administrative privileges should not be able to write to these directories PERIOD. This is a step to improve security; Microsoft just did it over a decade too late, and everyone using Windows was already used to using accounts with admin privileges (and all programs were already assuming that). This change was the best (only?) good thing in Vista as far as I can tell.So Microsoft created a folder that everyone should avoid because of stupid restrictions?
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Re: Exult broken on Vista and Windows 7;
A little piece of advice: keep your games, standard apps and other data on a separate partition, preferably even a seperate drive than your operating system. Solves all kinds of problems and if worse comes to worse, you can flatten C:\ reinstall your OS and keep all your other stuff intact.
Except that which depends on the windows registry. But you can make a backup of that and restore it later.
Except that which depends on the windows registry. But you can make a backup of that and restore it later.
Re: Exult broken on Vista and Windows 7;
While I find the tone of ShadowChaser's post absolutely abysmal and undeserved, I do think the points he makes are reasonable: applications should be well behaved in the environment.
ShadowChaser we are waiting for the patches to make Exult better behaved than you
ShadowChaser we are waiting for the patches to make Exult better behaved than you
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
@Marzo, @All - sorry about the snide comments. I was feeling a mixture of excitement about wanting to help, frustration that I spent a few hours trying to get Exult to work on Windows 7, and frustrated that I had 2 or 3 other patches for Pentagram sitting in the queue for what seems like two years now.
Hopefully interested parties can work together on a roadmap for 1.4's release - it seems like it that release fluctuates between bugs being fixed and new unstable (or undesired) features being added
Hopefully interested parties can work together on a roadmap for 1.4's release - it seems like it that release fluctuates between bugs being fixed and new unstable (or undesired) features being added
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
One other question... should I move the rest of this discussion to the email list? I imagine the 'default' behavior should be figured out before implementation.
I'm advocating the use of the normal per-user/per-machine folders by default, but it seemed as though others disagree.
I'm advocating the use of the normal per-user/per-machine folders by default, but it seemed as though others disagree.
Re: Exult broken on Vista and Windows 7;
Marzo: For an OS that no one cares about, there sure are many threads asking if Exult runs on it :/
Also, you would think that people would know better than to use an OS they don't care about:
http://upload.wikimedia.org/wikipedia/c ... _share.svg
Also, you would think that people would know better than to use an OS they don't care about:
http://upload.wikimedia.org/wikipedia/c ... _share.svg
Re: Exult broken on Vista and Windows 7;
@wut: no one here really cares whether anyone really cares about Vista. Take this discussion elsewhere please.
@shadowchaser, I would suggest to take the detail discussion to the ML (just remember to sign up on it, due to the high spam volume in the past, it is signed up users only). Those that don't answer can usually considered as undecided but at least they have read your proposal
I'm myself undecided where stuff should go to. As for the cfg file, dosbox did solve the problem nicely in their latest release (0.73). Maybe this code can be recycled if you haven't done anything yet.
@shadowchaser, I would suggest to take the detail discussion to the ML (just remember to sign up on it, due to the high spam volume in the past, it is signed up users only). Those that don't answer can usually considered as undecided but at least they have read your proposal
I'm myself undecided where stuff should go to. As for the cfg file, dosbox did solve the problem nicely in their latest release (0.73). Maybe this code can be recycled if you haven't done anything yet.
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Re: Exult broken on Vista and Windows 7;
@ShadowChaser, another thought I had on this subject:
exult.cfg should go into the userspace and exult should first look for it there. But everything else should be handled by the installer (if our installer supports this), and add the appropiate userspace or Windows savegames location to the exult.cfg it creates.
So Exult should only be patched to handle the exult.cfg location and then our installer should be patched.
Since the pre-compiled Windows snapshots come with the installer anyway this should take care of everyone.
People who compile the svn on their own should be able to handle this.
Another question in regard to what you wrote in your patch description, how did it happen that Windows 7 totally failed with the directory redirect on your machine? This is not normal behaviour and I wondered if you knew why this happened for you...
exult.cfg should go into the userspace and exult should first look for it there. But everything else should be handled by the installer (if our installer supports this), and add the appropiate userspace or Windows savegames location to the exult.cfg it creates.
So Exult should only be patched to handle the exult.cfg location and then our installer should be patched.
Since the pre-compiled Windows snapshots come with the installer anyway this should take care of everyone.
People who compile the svn on their own should be able to handle this.
Another question in regard to what you wrote in your patch description, how did it happen that Windows 7 totally failed with the directory redirect on your machine? This is not normal behaviour and I wondered if you knew why this happened for you...
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Re: Exult broken on Vista and Windows 7;
And if anyone wants to port the .ini code from Pentagram to Exult so we can kill that horrid XML configuration.....
Re: Exult broken on Vista and Windows 7;
Oooohhhh, I would like to have ini cfg file
--
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
Read the documentation and the FAQ! There is no excuse for not reading them! RTFM
Read the Rules!
We do not support Piracy/Abandonware/Warez!
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
@Dominus - not a bad idea, but any subsequent login would be missing the Exult.cfg file.
My thinking was that the patch would get Windows users up to speed for v1.4.X and that the configuration system could be overhauled (ie/ use Pentagram's system) at some point in the future (1.5x or whatever) - cleaned up and encapsulated a bit better.
Good point about Windows 7. I just checked, and launching exult.exe causes nothing to happen. The process immediately exits without an error message and no stderr.txt or stdout.txt files are written.
It appears as though the SDL is doing something Windows 7 is extremely unhappy about. Even the Windows AppVerifier failed to launch it or report back any results.
I've submitted two patches, one to fix an issue preventing Visual Studio from compiling Exult, and another to fix the game save file location. I haven't been able to get *any* activity from IRC or the tracker - the dev team is completely dark. Could someone please take a look? I'd really like to proceed fixing the other bugs I've posted.
My thinking was that the patch would get Windows users up to speed for v1.4.X and that the configuration system could be overhauled (ie/ use Pentagram's system) at some point in the future (1.5x or whatever) - cleaned up and encapsulated a bit better.
Good point about Windows 7. I just checked, and launching exult.exe causes nothing to happen. The process immediately exits without an error message and no stderr.txt or stdout.txt files are written.
It appears as though the SDL is doing something Windows 7 is extremely unhappy about. Even the Windows AppVerifier failed to launch it or report back any results.
I've submitted two patches, one to fix an issue preventing Visual Studio from compiling Exult, and another to fix the game save file location. I haven't been able to get *any* activity from IRC or the tracker - the dev team is completely dark. Could someone please take a look? I'd really like to proceed fixing the other bugs I've posted.
-
- Posts: 10
- Joined: Thu May 14, 2020 1:34 pm
Re: Exult broken on Vista and Windows 7;
Figured it out. I was using a combination of the published sound effects files and a trunk build - I believe this caused a CRC failure as Exult launched. I had worked around it my my specific SI and BG shortcuts by specifying --nocrc.
That's why double clicking exult.exe failed. I moved everything to Windows 7's "VirtualStore" directory, cleaned up the program files\exult directory, then fixed the shortcuts. Everything good without requiring elevation now - app compat is redirecting everything.
Still need to fix the underlying issues, but at least I don't need to elevate.
That's why double clicking exult.exe failed. I moved everything to Windows 7's "VirtualStore" directory, cleaned up the program files\exult directory, then fixed the shortcuts. Everything good without requiring elevation now - app compat is redirecting everything.
Still need to fix the underlying issues, but at least I don't need to elevate.