https://bugs.winehq.org/show_bug.cgi?id=36840
Bug ID: 36840 Summary: Tron 2.0 Demo crashes with "Out of memory" error Product: Wine Version: 1.7.21 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: schmatzler@googlemail.com
Created attachment 48930 --> https://bugs.winehq.org/attachment.cgi?id=48930 Debug log
I tried running the Tron 2.0 Demo that is available here:
http://www.fileplanet.com/126966/120000/fileinfo/TRON-2.0-Single-&-Multi...
The game needs a native msvcirt.dll to even do something, but it crashes with an out of memory error after switching the resolution.
Setting the VideoMemorySize in the registry does not fix the problem.
Full debug log is attached.
https://bugs.winehq.org/show_bug.cgi?id=36840
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|UNCONFIRMED |NEW URL| |http://www.fileplanet.com/1 | |26966/120000/fileinfo/TRON- | |2.0-Single-&-Multiplayer-De | |mo CC| |focht@gmx.net Component|-unknown |msvcrt Depends on| |11910 Ever confirmed|0 |1
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming.
The error has nothing to do with DirectX/OpenGL. The problem stems from the use of native 'msvcirt' override due to bug 11910
You can bypass the 'TRON.exe' launcher by passing a command file (generated by launcher on first run):
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Buena Vista Interactive/Tron 2.0 Demo
$ WINEDEBUG=+tid,+seh,+relay,+snoop,+msvcrt wine lithtech.exe -cmdfile launchcmds.txt >>log.txt 2>&1 ... 0024:Ret PE DLL (proc=0x780a1000,module=0x780a0000 L"MSVCIRT.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1 0024:Call PE DLL (proc=0xaffb9d,module=0x930000 L"cshell.dll",reason=PROCESS_ATTACH,res=(nil)) ... 0024:CALL MSVCIRT.??0ifstream@@QAE@PBDHH@Z(00000000,000000a0,000001a4,00000001) ret=009e2be3 0024:Call KERNEL32.InitializeCriticalSection(0033e15c) ret=780a1210 0024:Ret KERNEL32.InitializeCriticalSection() retval=00000001 ret=780a1210 0024:Call msvcrt.??2@YAPAXI@Z(00000054) ret=780a373f 0024:Call ntdll.RtlAllocateHeap(00710000,00000000,00000054) ret=7e74dd1b 0024:Ret ntdll.RtlAllocateHeap() retval=0226c000 ret=7e74dd1b 0024:trace:msvcrt:MSVCRT_operator_new (84) returning 0x226c000 0024:Ret msvcrt.??2@YAPAXI@Z() retval=0226c000 ret=780a373f 0024:Call KERNEL32.InitializeCriticalSection(0226c034) ret=780a1210 0024:Ret KERNEL32.InitializeCriticalSection() retval=00000001 ret=780a1210 0024:err:msvcrt:MSVCRT__invalid_parameter (null):0 (null): (null) 0 0024:Call msvcrt.??2@YAPAXI@Z(00000200) ret=780a3144 0024:Call ntdll.RtlAllocateHeap(00710000,00000000,00000200) ret=7e74dd1b 0024:Ret ntdll.RtlAllocateHeap() retval=00899d50 ret=7e74dd1b 0024:trace:msvcrt:MSVCRT_operator_new (512) returning 0x899d50 0024:Ret msvcrt.??2@YAPAXI@Z() retval=00899d50 ret=780a3144 0024:RET MSVCIRT.??0ifstream@@QAE@PBDHH@Z() retval=0033e118 ret=009e2be3 0024:CALL MSVCIRT.?seekg@istream@@QAEAAV1@JW4seek_dir@ios@@@Z(00000000,00000002) ret=009e2c0f 0024:Call msvcrt._lseek(0033e0ac,00000000,00000002) ret=780a2ecf 0024:warn:msvcrt:msvcrt_fdtoh :fd (3399852) - no handle! 0024:trace:msvcrt:MSVCRT__lseeki64 :fd (3399852) handle (0xffffffff) 0024:Ret msvcrt._lseek() retval=ffffffff ret=780a2ecf 0024:RET MSVCIRT.?seekg@istream@@QAEAAV1@JW4seek_dir@ios@@@Z() retval=0033e118 ret=009e2c0f 0024:CALL MSVCIRT.?tellg@istream@@QAEJXZ() ret=009e2c19 0024:Call msvcrt._lseek(0033e0ac,00000000,00000001) ret=780a2ecf 0024:warn:msvcrt:msvcrt_fdtoh :fd (3399852) - no handle! 0024:trace:msvcrt:MSVCRT__lseeki64 :fd (3399852) handle (0xffffffff) 0024:Ret msvcrt._lseek() retval=ffffffff ret=780a2ecf 0024:RET MSVCIRT.?tellg@istream@@QAEJXZ() retval=ffffffff ret=009e2c19 0024:CALL MSVCIRT._mtlock(0033e15c) ret=009e2c41 0024:RET MSVCIRT._mtlock() retval=00000000 ret=009e2c41 0024:CALL MSVCIRT._mtunlock(0033e15c) ret=009e2c5c 0024:RET MSVCIRT._mtunlock() retval=00000000 ret=009e2c5c 0024:CALL MSVCIRT.?seekg@istream@@QAEAAV1@J@Z(00000000) ret=009e2c6b 0024:Call msvcrt._lseek(0033e0ac,00000000,00000000) ret=780a2ecf 0024:warn:msvcrt:msvcrt_fdtoh :fd (3399852) - no handle! 0024:trace:msvcrt:MSVCRT__lseeki64 :fd (3399852) handle (0xffffffff) 0024:Ret msvcrt._lseek() retval=ffffffff ret=780a2ecf 0024:RET MSVCIRT.?seekg@istream@@QAEAAV1@J@Z() retval=0033e118 ret=009e2c6b 0024:Call msvcrt.??2@YAPAXI@Z(ffffffff) ret=009e2c71 0024:Call ntdll.RtlAllocateHeap(00710000,00000000,ffffffff) ret=7e74dd1b 0024:Ret ntdll.RtlAllocateHeap() retval=00000000 ret=7e74dd1b 0024:trace:msvcrt:_lock (9) 0024:Call msvcrt.longjmp(005cd4a4,00000001) ret=0042a1fd 0024:trace:seh:MSVCRT_longjmp buf=0x5cd4a4 ebx=00000000 esi=00400000 edi=00000001 ebp=0033fd78 esp=0033fc34 eip=00404f56 frame=0033fe10 retval=00000001 0024:trace:seh:MSVCRT_longjmp cur_frame=33f230 0024:trace:seh:_global_unwind2 (0x33fe10) 0024:Call ntdll.RtlUnwind(0033fe10,00000000,00000000,00000000) ret=7e73f147 0024: eax=7e730721 ebx=7e7b3000 ecx=00000000 edx=7bcecbc8 esi=0033dfa0 edi=0033fe10 ebp=0033df88 esp=0033df50 ds=002b es=002b fs=0063 gs=006b flags=00000202 0024:trace:seh:__regs_RtlUnwind code=c0000027 flags=2 0024:trace:seh:__regs_RtlUnwind calling handler at 0xb09e98 code=c0000027 flags=2 0024:trace:seh:cxx_local_unwind calling unwind handler 0xb09e30 trylevel 0 last -1 ebp 0x33f23c ... 0024:Call user32.MessageBoxA(00010020,005ac9bc "Out of memory",00719efd "TRON 2.0 Demo",00000000) ret=0040546a --- snip ---
Of course 'new(-1)' shouldn't happen.
'winetricks -q vcrun6' works around.
Maybe native 'msvcirt' relies on 'msvcrt' internal data structures/layout? Wouldn't be the first time ...
This might be a good chance to add the missing bits to Wine's builtin 'msvcirt', getting rid of these kind of bugs where knowledge of semi-documented/undocumented implementation is needed.
$ sha1sum trondemo.exe 86e06ede675601a8abfa0255408be270da68d9ca trondemo.exe
$ du -sh trondemo.exe 203M trondemo.exe
$ wine --version wine-1.7.21-50-g10e6a66
Regards
http://bugs.winehq.org/show_bug.cgi?id=36840
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |a5665693053b15a148407481c60 | |3a848fa183726 Status|NEW |RESOLVED CC| |piotr.caban@gmail.com Resolution|--- |FIXED
--- Comment #2 from Piotr Caban piotr.caban@gmail.com --- It works for me now. Fixed by a5665693053b15a148407481c603a848fa183726.
https://bugs.winehq.org/show_bug.cgi?id=36840
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.22.
https://bugs.winehq.org/show_bug.cgi?id=36840 Bug 36840 depends on bug 11910, which changed state.
Bug 11910 Summary: Multiple games need msvcirt.dll.??0istrstream@@QAE@PADH@Z (Tron 2.0, NOLF2, Schizm 2) https://bugs.winehq.org/show_bug.cgi?id=11910
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED