[Bug 28140] Theatre of War 3: Korea demo 1.2.0 crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Sat May 24 05:24:46 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download, obfuscation
             Status|UNCONFIRMED                 |NEW
                URL|                            |http://www.fileplanet.com/2
                   |                            |19558/210000/fileinfo/Theat
                   |                            |re-of-War-3:-Korea-Demo
                 CC|                            |focht at gmx.net
            Summary|theatre of war 3 korea Demo |Theatre of War 3: Korea
                   |does not start              |demo 1.2.0 crashes on
                   |                            |startup
     Ever confirmed|0                           |1

--- Comment #4 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, still present - although it's a different crash now (unhandled C++
exception) which can be attributed to Wine having evolved over time.

Since there exist bug 26827 and bug 36491 which I can't reproduce (most likely
users with broken host deps) using this one for current issue.

The game is Java-based, compiled to native code and obfuscated with Excelsior
JET 5.0 runtime.

--- snip ---
Korea.jar         91        1.5.0_11          DESKTOP      
com/ic/ww/game/GameWin3D          jet-500-release (pro, en)        
1.5.0_11    
      XKRN50091.dll      4   XMIS50091.DLL=*{comp.dir}\rt\jetrt\XMIS50091.dll
      4   XXML50091.DLL=*{comp.dir}\rt\jetrt\XXML50091.dll       4  
XAWT50091.DLL=*{comp.dir}\rt\jetrt\XAWT50091.dll       4  
XSEC50091.DLL=*{comp.dir}\rt\jetrt\XSEC50091.dll       4  
XKRN50091.DLL=*{comp.dir}\rt\jetrt\XKRN50091.dll       `  
-Djava.class.path:Korea.jar  -Djet.jit.fast  -Djet.gc.heaplimit:402653184 
-Djet.stack.trace   
--- snip ---

--- snip ---
    at com.maddox.rts.RTS.loadNative(Unknown Source)
    at com.maddox.rts.RTS.<clinit>(Unknown Source)
    at com.maddox.rts.RTS.loadNative(Unknown Source)
    at com.maddox.rts.SFSInputStream.<clinit>(Unknown Source)
    at com.maddox.rts.SFSReader.<init>(Unknown Source)
    at com.maddox.rts.IniFile.loadFile(Unknown Source)
    at com.maddox.rts.IniFile.<init>(Unknown Source)
    at com.maddox.rts.IniFile.<init>(Unknown Source)
    at com.ic.ww.game.GameWin3D.createConfigs(Unknown Source)
    at com.ic.ww.game.Main.exec(Unknown Source)
    at com.ic.ww.game.GameWin3D.main(Unknown Source)
--- snip ---

You can tweak various settings "offline" by editing 'ww.ini' in game folder:

--- snip ---
...
[core]
refresh=60
renderer=Direct3D9
window=(changeScreenRes=true,colourBits=32,depthBits=24,drawIfNotFocused=false,enableClose=false,enableResize=false,fullScreen=false,height=768,stencilBits=8,width=1024,posx=0,posy=0)
console=(bLog=true,bLogTime=false,bPause=true,bUseStartLog=false,bWrap=true,history=128,historyCmd=128,logFile=log.lst,page=20)
...
--- snip ---

'fullScreen=false' -> windowed mode

The crash seems to be dependent on number/type of active debug channels
(timing/threading/race?).

The launcher (parent, tid 0062) and game main process (child, console process,
tid 0060) communicate with IPC-like mechanism using process pipes.
The child instructs the parent to carry out various things.

Trace with +relay:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Battlefront/1C Company/Theatre of War 3
Korea - Trial Version

$ WINEDEBUG=+tid,+seh,+relay wine ./Korea.exe >>log.txt 2>&1
...
002a:Call KERNEL32.CreateProcessW(00000000,0033a97c L"C:\\Program
Files\\Battlefront\\1C Company\\Theatre of War 3 Korea - Trial
Version\\Korea.bin",00000000,00000000,00000001,00000000,00000000,00000000,0033bc30,0033bc14)
ret=00a9255d 
...
0060:Starting process L"C:\\Program Files\\Battlefront\\1C Company\\Theatre of
War 3 Korea - Trial Version\\Korea.bin" (entryproc=0x401000)
...
0060:Call KERNEL32.LoadLibraryA(0151fce8 "C:\\Program Files\\Battlefront\\1C
Company\\Theatre of War 3 Korea - Trial Version\\rt\\jetrt\\XKRN50091.dll")
ret=00af9c39 
...
002a:Call
KERNEL32.CreateThread(00000000,00000000,00402070,00000000,00000000,00000000)
ret=0040280e 
...
002a:Ret  KERNEL32.CreateThread() retval=000002e0 ret=0040280e
...
0062:Call TLS callback
(proc=0xa9cf98,module=0x400000,reason=THREAD_ATTACH,reserved=0) 
...
0060:Call KERNEL32.GetProcAddress(041b0000,0151f5b8
"_Java_com_maddox_core_SMesh_LoadAnimation at 16") ret=067aa223
0060:Ret  KERNEL32.GetProcAddress() retval=042e5ba0 ret=067aa223
...
0062:Call KERNEL32.CreateFileA(0cb6e810
"Animations\\ANI\\creep_idle.ani",80000000,00000001,00000000,00000003,10000000,00000000)
ret=00408131
0062:Ret  KERNEL32.CreateFileA() retval=ffffffff ret=00408131 
...
0062:Call user32.FindWindowA(004121d0 "1CMaddoxDirect3DWndClass",004121ec
"Korea") ret=004020c0
...
0062:Ret  user32.FindWindowA() retval=000200be ret=004020c0 
...
0062:Ret  KERNEL32.WaitForSingleObject() retval=00000000 ret=0040191b
0060:Ret  KERNEL32.WaitForSingleObject() retval=00000000 ret=03fd60eb
0062:Call KERNEL32.WriteFile(000002d4,0041ce80,00007fff,0cb6e980,00000000)
ret=0040193e
0060:Call KERNEL32.ReadFile(00000010,04004b08,00007fff,04011b30,00000000)
ret=03fd610a
0060:Ret  KERNEL32.ReadFile() retval=00000001 ret=03fd610a
0060:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0151e4e4)
ret=7c359aed
0060:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83ac57
ip=7b83ac57 tid=0060
0060:trace:seh:raise_exception  info[0]=19930520
0060:trace:seh:raise_exception  info[1]=0151e520
0060:trace:seh:raise_exception  info[2]=03feb5b8
0060:trace:seh:raise_exception  eax=7b826c7d ebx=7b8bb000 ecx=03feb5b8
edx=0151e430 esi=0151e4c8 edi=0151e490
0060:trace:seh:raise_exception  ebp=0151e468 esp=0151e404 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000287
...
0062:Ret  KERNEL32.WriteFile() retval=00000001 ret=0040193e
0060:Call ntdll.RtlUnwind(0151f714,7c359b4e,0151e410,00000000) ret=7c359b4e
0062:Call KERNEL32.WaitForSingleObject(000002d4,00000000) ret=0040195a
...
0060:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0151f94c)
ret=7c359aed
0060:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83ac57
ip=7b83ac57 tid=0060
0060:trace:seh:raise_exception  info[0]=19930520
0060:trace:seh:raise_exception  info[1]=0151f968
0060:trace:seh:raise_exception  info[2]=043b81ac
0060:trace:seh:raise_exception  eax=7b826c7d ebx=7b8bb000 ecx=19930520
edx=0151f884 esi=0151f930 edi=0151f8f0
0060:trace:seh:raise_exception  ebp=0151f8c8 esp=0151f864 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000283
...
java.lang.RuntimeException: INTERNAL ERROR: Can't load animation
'Animations/ANI/creep_idle.ani'
--- snip ---

These paths are internal, probably kind of virtual file system within BLOBs.
The errors are more or less random, depending on timing/load:

--- snip ---
java.lang.RuntimeException: INTERNAL ERROR: Can't load animation
'Animations/ANI/6pdr_c2_infantry.ani'
--- snip ---

The JET runtime system links against MS VC++ 2003 runtime, native
msvcr71/msvcp71 doesn't improve the situation.

$ sha1sum Theatre-of-War3_Korea_Trial_Version.exe 
954a1704fd61a8971548af5c8ac218583ffe9d6c 
Theatre-of-War3_Korea_Trial_Version.exe

$ du -sh Theatre-of-War3_Korea_Trial_Version.exe 
1.7G    Theatre-of-War3_Korea_Trial_Version.exe

$ wine --version
wine-1.7.19-56-gee13e10

Regards

-- 
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