http://bugs.winehq.org/show_bug.cgi?id=28140
Anastasius Focht focht@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@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@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@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