* Andreas Mohr (andi@rhlx01.fht-esslingen.de) wrote:
Actually GetFullPathName was known to have some trailing \ issue. So this had to be fixed somehow. It just astonished me a bit to see some code part completely removed instead of a "real" fix. But he said that he can't think of any occasion where it breaks, so it might be ok.
And there is another strange thing... HOMAM III is installed in C:\Program Files\3DO\Heroes3 directory. If I run wine from this directory with HEROES3.EXE as parameter everything works ok, of course, after "fix". However, if I run wine from, for example C:\Program Files\3D0 directory, it gave me error "Unable to initialize resources - ...".
wine --debugmsg +all 'C:\Program Files\3DO\Heroes3\HEROES3.EXE'
Debug output:
. . .
0806fa00:trace:reg:NtQueryValueKey (0x58,L"AppPath",2,0x40896ab4,256) 0806fa00: get_key_value( hkey=88, name=L"AppPath" ) Get key \Machine\Software\New World Computing\Heroes of Might and Magic\xae III\1.0 value "AppPath"="C:\Program Files\3DO\" 0806fa00: get_key_value() = 0 { type=1, total=44, data={43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,33,00,44,00,4f,00,5c,00,00,00} }
. . .
Call kernel32.GetFullPathNameA(005d78d0 ".\DATA\",00000104,40896cac,40896c9c) ret=00599630 trace:dosfs:DOSFS_GetFullName . (last=0) trace:string:lstrcpynA (0x40896398, "/opt/c", 1024) trace:string:lstrcpynA (0x4089639f, "Program Files/3DO", 1017) trace:string:lstrcpynA (0x4089679b, "PROG~FBU\3DO", 1021) trace:dosfs:DOSFS_GetFullName returning /opt/c/Program Files/3DO = C:\PROG~FBU\3DO trace:string:lstrcpynA (0x4089679a, "/Program Files/3DO", 1021) 0806fa00:trace:string:lstrcpynA (0x408967ad, ".\DATA\", 1003) 0806fa00:trace:dosfs:DOSFS_DoGetFullPathName got C:\Program Files\3DO\DATA\ 0806fa00:trace:string:lstrcpynA (0x40896cac, "C:\Program Files\3DO\DATA\", 260) 0806fa00:trace:dosfs:DOSFS_DoGetFullPathName returning 'C:\Program Files\3DO\DATA'
. . .
Look at the final path, it's WRONG. It should be 'C:\Program Files\3DO\HEROES3\DATA'. If I run wine from directory 'C:\Program Files' the final path is even worse -> 'C:\Program Files\DATA'. And yes, same happen if try it without my fix - except that last backslash. What's going on here? I don't understand this. Looks like black magic to me ;)
Martin