https://bugs.winehq.org/show_bug.cgi?id=55582
Bug ID: 55582 Summary: Game: Civilization2 crashes when trying to set up new game. Game worked previously but has been broken for several months now. Have tried fresh Linux installs and fresh Wine downloads. Same issue everytime. Product: Wine Version: 8.0.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: linuxd630@gmail.com Distribution: ---
Created attachment 75112 --> https://bugs.winehq.org/attachment.cgi?id=75112 This was the dump wine provided when the game crashed
Game launches as expected. Select "new game" select player civilization. When I attempt to input the leader name for the civilization, the game crashes.
https://bugs.winehq.org/show_bug.cgi?id=55582
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Game: Civilization2 crashes |Civilization 2 crashes when |when trying to set up new |setting up new game |game. Game worked | |previously but has been | |broken for several months | |now. Have tried fresh Linux | |installs and fresh Wine | |downloads. Same issue | |everytime. | Keywords| |regression
--- Comment #1 from Gijs Vermeulen gijsvrm@gmail.com --- Have you tried with the latest wine-development version? Currently, that is wine-8.15.
https://bugs.winehq.org/show_bug.cgi?id=55582
--- Comment #2 from Steven Barton linuxd630@gmail.com --- (In reply to Gijs Vermeulen from comment #1)
Have you tried with the latest wine-development version? Currently, that is wine-8.15.
Hello, yes I have tried. Its the exact same behavior. No change. It used to work a couple of months ago but no longer.
https://bugs.winehq.org/show_bug.cgi?id=55582
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |30209d86b0a585b8a6d6b51c5af | |bf0653055d62c Component|-unknown |user32 CC| |gyebro69@gmail.com, | |jacek@codeweavers.com
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- I reproduced this bug in Civilization II: Multiplayer Edition (easier to make it work in Wine than the original Civ II). Still present in Wine-8.18.
The regression appeared in Wine-7.15, introduced by commit 30209d86b0a585b8a6d6b51c5afbf0653055d62c user32: Always use 64-bit cbWndExtra for edit control.
Added Jacek to CC. Since no demo version exists I can provide debug logs if they are needed.
https://bugs.winehq.org/show_bug.cgi?id=55582
--- Comment #4 from Béla Gyebrószki gyebro69@gmail.com --- I came across an unofficial patch for Civ 2 which is intended to fix the same problem that also occurs on modern Windowses:
https://www.pcgamingwiki.com/wiki/Sid_Meier%27s_Civilization_II#Unofficial_p...
Direct link to the patch: https://github.com/FoxAhead/Civilization-II-64-bit-Editbox-Patcher/releases
The patch works for me with the Multiplayer Edition of Civ 2 (not sure it is usable with the vanilla version of Civ 2).
Seemingly, the problem reported here also occurs on Windows (game crashes when entering text in input boxes) so strictly speaking this might not be a Wine bug (but it would be nice if it could be fixed in Wine).
wine-8.20-47-g137638e185e
https://bugs.winehq.org/show_bug.cgi?id=55582
--- Comment #5 from Rafał Mużyło galtgendo@o2.pl --- Any idea what that patch exactly changes in the executable ?
https://bugs.winehq.org/show_bug.cgi?id=55582
--- Comment #6 from Béla Gyebrószki gyebro69@gmail.com --- (In reply to Rafał Mużyło from comment #5)
Any idea what that patch exactly changes in the executable ?
The patch has an "extended version" by the same author, called Civilization II User Interface Additions. It is written in Delphi 7 and the author released the source code of it: https://github.com/FoxAhead/Civ2-UI-Additions/releases/tag/v1.20.3
There is an ASM snippet in Civ2UIA.dpr which probably deals with the issue: procedure PatchEditBox64Bit(); register; asm push GCL_CBWNDEXTRA mov eax, [ebp + $08] push eax call [$006E7E9C] // GetClassLongA mov ebx, eax sub al, 4 push eax mov eax, [ebp + $08] push eax call [$006E7E2C] // GetWindowLongA sub ebx, 8 mov [ebp - $08], eax mov eax, [ebp - $0C] push ebx mov eax, [ebp + $08] push eax call [$006E7E2C] // GetWindowLongA mov [ebp - $14], eax mov eax, [ebp + $0C] mov [ebp - $1C], eax push $005D2C94 ret end;
Should be noted that the patch is only needed for 64-bit Windowses whereas the crash happens in both 32-bit and WOW64 Wine.
https://bugs.winehq.org/show_bug.cgi?id=55582
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |infyquest@gmail.com Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |46df584cc586587e1d46767719e | |b8421f64375b0
--- Comment #7 from Vijay Kamuju infyquest@gmail.com --- Fix commited - 46df584cc586587e1d46767719eb8421f64375b0
https://bugs.winehq.org/show_bug.cgi?id=55582
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc3.