http://bugs.winehq.org/show_bug.cgi?id=32673
Bug #: 32673 Summary: Rainbow Six fails to start for the first time with windows version > ME Product: Wine Version: 1.5.21 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: flavio@nebososo.com Classification: Unclassified
Tom Clancy's Rainbow Six will only start for the first time if the windows version is set to ME or older. However it does work when set to newer versions after it has already been started using an old one.
Using a clean prefix. The demo can be downloaded here: http://www.fileplanet.com/27609/download/Rainbow-Six-Demo
http://bugs.winehq.org/show_bug.cgi?id=32673
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.fileplanet.com/2 | |7609/download/Rainbow-Six-D | |emo CC| |gyebro69@gmail.com
--- Comment #1 from GyB gyebro69@gmail.com 2013-01-13 11:55:19 CST --- This game is from around 1998, does it run under newer OSes like XP or Vista without setting compatibility mode? I tried the demo in Wine 1.5.21 and could reproduce the problem. When launching the game in the default WinXP mode, it refuses to start because many of the registry keys under 'HKLM/Software/Red Storm Entertainment/Tom Clancy's Rainbow Six Demo' are not created for some reason. If you start the game in Win98 mode, those registry keys are created correctly and the game will run from then on even if you switch back to Windows XP mode. Also, if the game is running in Windows XP mode and you make any changes in the options menu, those changes are not written in the registry, probably due to the same problem.
http://bugs.winehq.org/show_bug.cgi?id=32673
--- Comment #2 from Flávio Zavan flavio@nebososo.com 2013-01-14 16:35:08 CST --- I successfully installed and played the game on a windows XP machine without compatibility mode. A friend of mine tried it on windows 7, it also worked except for the Mission Pack (Eagle Watch) videos, he solved that my deleting the video directory, no compatibility mode needed.
http://bugs.winehq.org/show_bug.cgi?id=32673
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |00cpxxx@gmail.com Ever Confirmed|0 |1
--- Comment #3 from Bruno Jesus 00cpxxx@gmail.com 2013-01-14 19:56:48 CST --- I can confirm this issue and can also confirm that win 98/ME mode are workarounds to the issue. But I can't really see it failing to create the registry keys, I think it quits earlier because a +reg does not show any of the missing key names.
http://bugs.winehq.org/show_bug.cgi?id=32673
--- Comment #4 from GyB gyebro69@gmail.com 2013-01-14 21:42:54 CST --- (In reply to comment #3)
But I can't really see it failing to create the registry keys, I think it quits earlier because a +reg does not show any of the missing key names.
You should try +relay to see what key the game tries to access before it is failing.
http://bugs.winehq.org/show_bug.cgi?id=32673
--- Comment #5 from Bruno Jesus 00cpxxx@gmail.com 2013-01-16 19:31:01 CST --- I see now what you're talking about. The game tries to create the "Movie On" key with value 1 but it fails with error 0xc0000022.
http://bugs.winehq.org/show_bug.cgi?id=32673
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |32672
http://bugs.winehq.org/show_bug.cgi?id=32673
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #6 from Anastasius Focht focht@gmx.net 2013-09-01 11:21:20 CDT --- Hello folks,
well the game relies on Windows 9X behaviour where the access rights for registry key objects are ignored.
Wine mimics Win9X behaviour by adjusting access rights to MAXIMUM_ALLOWED when RegCreateKeyExA/W is called hence all subsequent registry operations succeed even if incorrect access rights were are supplied in first place.
The game code calls RegSetValueEx() on a key that was opened with KEY_QUERY_VALUE access. This will obviously not work for Windows NT based systems.
--- snip --- ... 0025:Call advapi32.RegCreateKeyExA(80000002,00856cf0 "Software\Red Storm Entertainment\Tom Clancy's Rainbow Six Demo",00000000,0085bba8,00000000,00000001,00000000,0033f960,0033f968) ret=0045674d 0025:trace:reg:NtCreateKey (0x1c,L"Software\Red Storm Entertainment\Tom Clancy's Rainbow Six Demo",L"Sherman Values",0,1,0x33f960) 0025:trace:reg:NtCreateKey <- 0x6c 0025:Ret advapi32.RegCreateKeyExA() retval=00000000 ret=0045674d
0025:Call advapi32.RegQueryValueExA(0000006c,00856a5c "Movie On",00000000,0033f96c,0033f970,0033f964) ret=00456783 0025:trace:reg:RegQueryValueExA (0x6c,"Movie On",(nil),0x33f96c,0x33f970,0x33f964=256) 0025:trace:reg:NtQueryValueKey (0x6c,L"Movie On",2,0x33f798,256) 0025:Ret advapi32.RegQueryValueExA() retval=00000002 ret=00456783
0025:Call advapi32.RegSetValueExA(0000006c,00856a5c "Movie On",00000000,00000001,011ec4a0,00000004) ret=004567bd 0025:trace:reg:NtSetValueKey (0x6c,L"Movie On",1,0x134b88,10) 0025:Ret advapi32.RegSetValueExA() retval=00000005 ret=004567bd 0025:Call advapi32.RegCloseKey(0000006c) ret=004567cc 0025:Ret advapi32.RegCloseKey() retval=00000000 ret=004567cc ... --- snip ---
Annotated:
--- snip --- RegCreateKeyExA:
0033F930 80000002 ; hKey = HKEY_LOCAL_MACHINE 0033F934 00856CF0 ; Subkey = "Software\Red Storm Entertainment\Tom Clancy's Rainbow Six Demo" 0033F938 00000000 ; Reserved = 0 0033F93C 0085BBA8 ; Class = "Sherman Values" 0033F940 00000000 ; Options = REG_OPTION_NON_VOLATILE 0033F944 00000001 ; DesiredAccess = KEY_QUERY_VALUE 0033F948 00000000 ; pSecurity = NULL 0033F94C 0033F960 ; pResult = 0033F960 -> 006228C1 0033F950 0033F968 ; pDisposition = 0033F968 -> 11EB000
RegQueryValueExA:
0033F93C 0000006C ; hKey = 0000006C 0033F940 00856A5C ; Name = "Movie On" 0033F944 00000000 ; Reserved = 0 0033F948 0033F96C ; pType = 0033F96C -> 18788515. 0033F94C 0033F970 ; pData = 0033F970 -> AC 0033F950 0033F964 ; pDataLen = 0033F964 -> 256.
ret = 0x2
RegSetValueExA:
0033F93C 0000006C ; hKey = 0000006C 0033F940 00856A5C ; SubKey = "Movie On" 0033F944 00000000 ; Reserved = 0 0033F948 00000001 ; Type = REG_SZ 0033F94C 011EC4A0 ; Data = 011EC4A0 -> 54 0033F950 00000004 ; DataSize = 4
ret = 0x5 --- snip ---
MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724923%28v=vs.85%2...
--- quote --- hKey [in]
A handle to an open registry key. The key must have been opened with the KEY_SET_VALUE access right. For more information, see Registry Key Security and Access Rights.
... --- quote ---
The reason why this game still works on NT-based systems is called appcompat/application shims.
Unless Wine supports this feature (there was some talk on wine dev list, search for "apphelp") use the simple workarounds as described in this bug.
It might be useful to introduce a special keyword to flag bugs targeting broken apps/games ("appcompat" or "appshim" ...).
Regards
https://bugs.winehq.org/show_bug.cgi?id=32673
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #7 from joaopa jeremielapuree@yahoo.fr --- No news for this nice feature?
It might be useful to introduce a special keyword to flag bugs targeting broken >apps/games ("appcompat" or "appshim" ...).
https://bugs.winehq.org/show_bug.cgi?id=32673
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.fileplanet.com/2 |https://web.archive.org/web |7609/download/Rainbow-Six-D |/20191221105635/http://down |emo |load.fileplanet.com/ftp1/ga | |medemos/strategy/rsixdemo.z | |ip?st=H94kHpXV6zRCzHio5uy1g | |g&e=1576936578 Summary|Rainbow Six fails to start |Rainbow Six fails to start |for the first time with |for the first time with |windows version > ME |Windows version > ME (Win9x | |game, requires | |VirtualRegistry appcompat | |shim)
--- Comment #8 from Anastasius Focht focht@gmx.net --- Hello Jeremie,
well, currently there are very few bugs related to appcompat shims topic. Few pre-XP legacy apps/games that are end-of-life. Adding a new keyword isn't worth for these.
I'd say providing a hint in the summary line should be fine. Like bug 13994 ("Dungeon Keeper 2 Demo does not start with WinVer set to 'Windows XP' or higher (broken game, requires VirtualRegistry appcompat shim)")
$ wine --version wine-5.0-rc2
Regards
https://bugs.winehq.org/show_bug.cgi?id=32673
Matheus matheus.venturini@acad.ufsm.br changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |matheus.venturini@acad.ufsm | |.br
--- Comment #9 from Matheus matheus.venturini@acad.ufsm.br --- Still happens in 8.0
https://bugs.winehq.org/show_bug.cgi?id=32673
jacobbrett+winehqbugs@jacobbrett.id.au changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jacobbrett+winehqbugs@jacob | |brett.id.au