[Bug 18710] Quake 3 Arena - punkbuster On/Off problem

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Jun 1 07:02:40 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=18710





--- Comment #8 from Anastasius Focht <focht at gmx.net>  2009-06-01 07:02:38 ---
Hello,

this is indeed a valid Wine bug exposed by patch installer, though not related
to PunkBuster itself ;-)
When the vise installer tells you about Punkbuster, a message box is to be
shown and this fails silenty:

--- snip ---
...
0009:Call user32.MessageBoxExA(00050036,0032d9c0 "Would you like to install
PunkBuster along with the Point Release? (We recommend you do)",0032d8bc
"Install Punkbuster?",00050004,00000009) ret=1004bcaf
0009:Call ntdll.RtlCreateUnicodeStringFromAsciiz(0032d770,0032d9c0 "Would you
like to install PunkBuster along with the Point Release? (We recommend you
do)") ret=75416e83
0009:Ret  ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00000001 ret=75416e83
0009:Call ntdll.RtlCreateUnicodeStringFromAsciiz(0032d768,0032d8bc "Install
Punkbuster?") ret=75416eb4
0009:Ret  ntdll.RtlCreateUnicodeStringFromAsciiz() retval=00000001 ret=75416eb4
0009:Call KERNEL32.FindResourceExW(75380000,00000005,754669b2
L"MSGBOX",00000009) ret=75417001
0009:Call ntdll.RtlCreateUnicodeString(0032d5ec,754669b2 L"MSGBOX")
ret=7b88a5e9
0009:Ret  ntdll.RtlCreateUnicodeString() retval=00000001 ret=7b88a5e9
0009:Call ntdll.RtlUpcaseUnicodeString(0032d5ec,0032d5ec,00000000) ret=7b88a606
0009:Ret  ntdll.RtlUpcaseUnicodeString() retval=00000000 ret=7b88a606
0009:Call ntdll.LdrFindResource_U(75380000,0032d5d8,00000003,0032d5d4)
ret=7b88ac82
0009:Ret  ntdll.LdrFindResource_U() retval=c0000204 ret=7b88ac82
0009:Call ntdll.RtlNtStatusToDosError(c0000204) ret=7b88ac9f
0009:Ret  ntdll.RtlNtStatusToDosError() retval=00000717 ret=7b88ac9f
0009:Call ntdll.NtCurrentTeb() ret=7b851d95
0009:Ret  ntdll.NtCurrentTeb() retval=7ffd8000 ret=7b851d95
0009:Call ntdll.RtlFreeHeap(00110000,00000000,00153ed0) ret=7b851e05
0009:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7b851e05
0009:Ret  KERNEL32.FindResourceExW() retval=00000000 ret=75417001
0009:Call ntdll.RtlFreeUnicodeString(0032d770) ret=75416f81
0009:Ret  ntdll.RtlFreeUnicodeString() retval=0032d770 ret=75416f81
0009:Call ntdll.RtlFreeUnicodeString(0032d768) ret=75416f9a
0009:Ret  ntdll.RtlFreeUnicodeString() retval=0032d768 ret=75416f9a
0009:Ret  user32.MessageBoxExA() retval=00000000 ret=1004bcaf 
...
--- snip ---

The problem is the language id passed:

langid = 0x9 -> English (primary=en, sublang=neutral)

See MSDN: http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx 
(National Language Support (NLS) API Reference)

Looking into appropriate .rc file for the primary language,
"dlls/user32/resources/user32_En.rc":

--- snip ---
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT 
--- snip ---

Wine resource compiler will write out langid = 1033 (0x409, English – United
States) resource - the same as "LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US" had
been specified.
At least LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL fallback has to exist as well.

With that resource langid problem fixed, the message box will be shown and you
can install PunkBuster (already tested).

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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