[Bug 51524] szExeFile is different from Windows

WineHQ Bugzilla wine-bugs at winehq.org
Thu Aug 5 14:05:51 CDT 2021


https://bugs.winehq.org/show_bug.cgi?id=51524

--- Comment #4 from Ilya Trukhanov <lahvuun at gmail.com> ---
The binary name already is lowercase, but there is a workaround.

I didn't want to explain how cnconline and the game work to avoid unnecessary
information, but maybe this will clear things up a bit.

The way the game works is it has a single .exe launcher and a bunch of binaries
for different game versions: "ra3_1.0.game", "ra3_1.1.game", all the way up to
"ra3_1.12.game". The launcher simply picks one of these binaries (not sure how,
likely the highest version) and runs it with CreateProcessW with
lpApplicationName set to NULL. The command line for starting these binaries
comes from text files. There is, for instance, a file called
"RA3_english_1.12.SkuDef" and its first line is "set-exe Data\RA3_1.12.game".
This is a part of the command line that "ra3_1.12.game" would be started with.

I know this because I disassembled the launcher and found where the call to
CreateProcessW is (eax is lpCommandLine):
Wine-gdb> x /sh $eax
0xcc5a50:      
u"Z:\\home\\lahvuun\\fasthdd\\games\\Windows\\RA3\\Data\\RA3_1.12.game -config
\"Z:\\home\\lahvuun\\fasthdd\\games\\Windows\\RA3\\RA3_english_1.12.SkuDef\" "

The workaround is to edit the first line of the file to "set-exe
data\ra3_1.12.game":
Wine-gdb> x /sh $eax
0xcc5a50:      
u"Z:\\home\\lahvuun\\fasthdd\\games\\Windows\\RA3\\Data\\ra3_1.12.game -config
\"Z:\\home\\lahvuun\\fasthdd\\games\\Windows\\RA3\\RA3_english_1.12.SkuDef\" "

As you can see, the binary name in the command line is now lowercase. cnconline
will also successfully find the game and work as expected now.

Of course, this is not needed at least on Windows 10, because there szExeFile
will be "ra3_1.12.game" regardless of how that first line in
"RA3_english_1.12.SkuDef" is capitalized. My *guess* is that Windows sets
szExeFile to the actual file name, while Wine sets it to the first token in
lpCommandLine. I could probably test this with different capitalizations for
both the file name and command line if you want.

>That sounds like changed behavior in windows...
I doubt that. I asked in the cnconline discord server if the program works on
Windows 7 and was told that it does.

>Would you be able to test whether the program works on Windows 7?
My test example actually crashes on Windows 7, not sure why. It will take me a
few days to test if cnconline works on that computer.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list