Page 1 of 3

patch 1.04 all save games gone

Posted: December 14th, 2007, 5:55 am
by dak
I installed the patch 1.04 now all my save slots says EMPTY! *cry*

Re: patch 1.04 all save games gone

Posted: December 14th, 2007, 6:06 am
by kxc
dak wrote:I installed the patch 1.04 now all my save slots says EMPTY! *cry*
From the Patch 1.04 BETA topic:
Please be aware:
The "My Document" fix may actually cause some problems for people whose Documents are not actually called "My Documents". If the game doesn't see "My Documents", it will attempt to save the game inside the installation directory. You may need to do some manual copying of your saved games to the new directory if this happens.

Posted: December 14th, 2007, 6:17 am
by BasiliskWrangler
Your saved games are not lost, they are just now being saved in a new location.

Check the installation directory (probably c:/Program Files/Eschalon Book I/) and see if the "Eschalon Book I Saved Games" is in there. If you don't find it there, do a search for it...

Start the game, quick start with a new character, then save the game right away and exit. Now, if you do a system wide search for "35.map" you should find 3 locations of it: the original file in your installation/data folder, the original saved game location of it, and the new saved game location of it. Copy all the slots from your original saved game location to the new saved game location.

Posted: December 14th, 2007, 6:27 am
by kxc
Actually, official patch has the same problem too. Although the solution is easy and fast, this issue might be a big problem for newcomers. Moreover, I think it hurts the Vista compatibility.

Is there a feasible way to fix this issue completely?

Posted: December 14th, 2007, 6:43 am
by BasiliskWrangler
kxc wrote:I think it hurts the Vista compatibility...
Actually, it may only effect Vista compatibility on non-English Vista, and this would be solved by giving the game administrative rights. This seemed like a simpler solution than forcing users to create new directories and try to "trick" the game to save to a specific location.

Posted: December 14th, 2007, 7:39 am
by Necromis
BW why don't you just have on install a directory created in the games install directory for saves and forget about the My Docs route? Personally I hate when a program wants to store things in my My Docs as I only want things there that I put there. It would solve all the language issues, too.

Posted: December 14th, 2007, 9:07 am
by gnozal
About the language issue : why is "My Documents" hard coded ?
Why not use SHGetSpecialFolderLocation() with CSIDL_PERSONAL ?

Posted: December 14th, 2007, 10:05 am
by JOG
BasiliskWrangler wrote:
kxc wrote:I think it hurts the Vista compatibility...
Actually, it may only effect Vista compatibility on non-English Vista, and this would be solved by giving the game administrative rights. This seemed like a simpler solution than forcing users to create new directories and try to "trick" the game to save to a specific location.
But pre-1.04 the game may have worked fine on every Windows, and only those languages not using latin letters (russian, greek, hebrew, arabic, chinese etc.) actually had problems.

"My Documents" is a virtual folder that links to a different physical path for every user. Only when this physical path contained non-ANSI chars (e.g. cyrillic letters) Eschalon had problems. If you create a folder with such letters on your english Windows you'll have the same problems, because SHGetSpecialFolderLocation() returns the physical path in unicode instead of ASCII.

Now the game isn't Vista-compatible at all. Non-english Windows simply doesn't have a physical folder with the name "My Documents", and some users of english Windows may link to a different folder just like I do.


My virtual "My Documents" folder is called "Eigene Dateien" on my german Windows. By default it links to "C:\Dokumente und Einstellungen\<user>\Eigene Dateien." For the user-account I use for gaming I set this folder to E:\Savegames.

Eschalon 1.00 - 1.03 worked fine:

generic default user:
"C:\Dokumente und Einstellungen\Test\Eigene Dateien\Eschalon Book 1 Saved Games"

standard gaming user:
"E:\Savegames\Eschalon Book 1 Saved Games"

Regardless of my feelings about having savegames separated from the game itself, this is how it has to be for Vista compatibility, and Eschalon did it fine as long as the path was returned in ANSI.

The problem starts with:

"C:\Dokumente und Einstellungen\Попытка\Eigene Dateien\Eschalon Book 1 Saved Games"

The cyrillic letters don't work.

Posted: December 14th, 2007, 10:32 am
by BasiliskWrangler
gnozal wrote:About the language issue : why is "My Documents" hard coded ?
Why not use SHGetSpecialFolderLocation() with CSIDL_PERSONAL ?
"My Documents" is not hard coded in 1.0 - 1.03; the function to get a users Documents folder just appears to fail when Cyrillic letters are encountered.

In 1.04, I put a clause that said if user docs <> "My Documents" to use AppDir() instead, hoping to avoid crashing when oddly named "My Documents" folders are encountered. I can do some more experiments if people with non-English my documents want to email me and try some stuff out.

As of right now, is there anyone having critical problems with 1.04? I need to know what is more of a pain in the ass- 1.03's workarounds or 1.04 giving Eschalon administrative rights?

Posted: December 14th, 2007, 10:40 am
by JOG
BasiliskWrangler wrote:About the language issue :
As of right now, is there anyone having critical problems with 1.04? I need to know what is more of a pain in the ass- 1.03's workarounds or 1.04 giving Eschalon administrative rights?
Decide for yourself:

1.00 - 1.03:
Maybe 20% of foreign user having problems.

1.04:
100% of foreign user and maybe 5% of english users are forced to trick Windows into giving the game permanent admin rights.

The problem could be solved when you use SHGetPathFromIDList to handle the path returned by SHGetSpecialFolderLocation instead of just truncating at the first "0" (i.e. the first unicode-char)

Posted: December 14th, 2007, 10:45 am
by BasiliskWrangler
Okay, everyone who is following this thread, especially those with an odd or non-English "My Documents" run this program and see what you get.

http://basiliskgames.com/misc/docs.exe

Thanks.

Posted: December 14th, 2007, 10:59 am
by BasiliskWrangler
Okay, I just got some confirmation on a few things: the language system I use, in order to remain cross-platform compatible as well as 98/ME compatible does not nor will ever support non-ASCII paths.

So, in regards to the sample program I posted, it probably won't work any better for people.

Posted: December 14th, 2007, 11:05 am
by Necromis
@BW I will ask again. Why not just have the save directory be part of the the Appdir for all installs? This eliminates the issue all together. Just have it create a save directory under the app directory.

Posted: December 14th, 2007, 11:13 am
by JOG
BasiliskWrangler wrote:Okay, everyone who is following this thread, especially those with an odd or non-English "My Documents" run this program and see what you get.

http://basiliskgames.com/misc/docs.exe

Thanks.
My Standard Gaming User:
E:\Savegames\

Latin Test-User
C:\Dokumente und Einstellungen\Test\Eigene Dateien

Russian-Test-User
C:\Dokumente und Einstellungen\???????\Neuer Ordner

With ??????? being junk letters instead of Попытка, the russian word for "Test"

Posted: December 14th, 2007, 11:14 am
by BasiliskWrangler
Necromis wrote:@BW I will ask again. Why not just have the save directory be part of the the Appdir for all installs? This eliminates the issue all together. Just have it create a save directory under the app directory.
Because that is not "Vista Compatible". Normally, unless you give admin rights to a program, Vista will deny a program permission to write to anything but a user's Documents folder. However, in 1.04 I have done just that- if "My Documents" is unreachable, the game tries to save in the App directory. This may require users to give it permission to do so.