PDA

Просмотр полной версии : RA 1.40 Crash


Phantom
27-11-2016, 19:42
Hello everyone!
I'm new in the forum. First I wanted to congratulate the creators of the mod! It's really fantastic!:) But I have a problem, very often (almost always) the game crashes when it finishes the loading of the mission. I've tried various settings, differnt d3d8.dll etc. But I can't resolve it. Any idea?
Thanks in advance!

dasOoops
27-11-2016, 23:35
I think, more information needed: type of Windows, minidump and etc. (I have Windows7 Home Extended, 64-bit; DW 1.0.0 + patch 1.0.4 + dwx 1.40 - no crashes...)

Phantom
28-11-2016, 01:52
I think, more information needed: type of Windows, minidump and etc. (I have Windows7 Home Extended, 64-bit; DW 1.0.0 + patch 1.0.4 + dwx 1.40 - no crashes...)
You're right! Some infos are needed! Then
Windwows 10 Pro 64bit, DW 1.04 Steam edition, d3d8.dll (provieded with RA Mod), RA.140, Rus voices 1.39.

dasOoops
28-11-2016, 22:11
Windows SDK includes minidump`s viewer (kd.exe or similar)... It can show the causes of crashes.

Jaf
28-11-2016, 22:36
I have a problem, very often (almost always) the game crashes when it finishes the loading of the mission. Any idea?

Comrade monkie had a similar problem.
Try to take advantage of his advice:
http://www.redrodgers.com/forums/showpost.php?p=143481&postcount=4

Phantom
29-11-2016, 00:01
Comrade monkie had a similar problem.
Try to take advantage of his advice:
http://www.redrodgers.com/forums/showpost.php?p=143481&postcount=4
Thanks but i've already tried it.

Windows SDK includes minidump`s viewer (kd.exe or similar)... It can show the causes of crashes.
This is one of the minidumps:

Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Users\Alessio\Desktop\dangerouswaters.exe.3852. dmp]
User Mini Dump File: Only registers, stack and portions of memory are available

Symbol search path is: srv*
Executable search path is:
Windows 10 Version 14393 MP (8 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
Built by: 10.0.14393.206 (rs1_release.160915-0644)
Machine Name:
Debug session time: Sun Nov 27 22:19:22.000 2016 (UTC + 1:00)
System Uptime: not available
Process Uptime: 0 days 0:00:49.000
.................................................. ..............
................................
Loading unloaded module list
......
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(f0c.d30): Access violation - code c0000005 (first/second chance not available)
*** WARNING: Unable to verify timestamp for ntdll.dll
*** ERROR: Module load completed but symbols could not be loaded for ntdll.dll
Unable to load image C:\Windows\System32\KERNELBASE.dll, Win32 error 0n2
*** WARNING: Unable to verify timestamp for KERNELBASE.dll
*** ERROR: Module load completed but symbols could not be loaded for KERNELBASE.dll
eax=00000000 ebx=00000000 ecx=0b77f9f0 edx=00000000 esi=00000003 edi=00000003
eip=77cfe2cc esp=0bd3eddc ebp=0bd3ef6c iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
ntdll+0x6e2cc:
77cfe2cc c21400 ret 14h

dasOoops
29-11-2016, 22:25
Hmmm... Maybe options for debugger needed... Show stack... Second way: run dw under debugger. (I like OllyDbg)

CubanFoxtrot
29-11-2016, 23:18
The crash on 2256.dmp seems caused by the "happy" coincidence of the 3D engine picking a 32-bit backbuffer (side effect of the D3D8 emulation wrapper, I believe?) and the non-power of 2 size of gen_dlg_MIDLFT.bmp of shared graphics package.

My notes about it:

0:000> .ecxr
eax=103aa16e ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000000
eip=004bbf78 esp=0019f3e0 ebp=102bd5b8 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
Unable to load image D:\Program Files (x86)\Steam\steamapps\common\Dangerous Waters\dangerouswaters.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for dangerouswaters.exe
*** ERROR: Module load completed but symbols could not be loaded for dangerouswaters.exe
dangerouswaters+0xbbf78:
004bbf78 8a5001 mov dl,byte ptr [eax+1] ds:002b:103aa16f=??

// Function: SCS::Naval3DEngine::CSurface *SCS::Naval3DEngine::CEngine::loadSurfaceFromFile( SCS::Naval3DEngine::CEngine *this, const char *fileName, int type, SCS::Naval3DEngine::CSurface *surface = nullptr) @ 0x004BB9C0
// fileName = "gen_dlg_MIDLFT.bmp" (25 x 25 @ RGB888 format)
// type = 1 -> SCS::Naval3DEngine::CSurface::Type::BITMAP

scanline_size = 0x64 = 100 bytes -> BAD!!!
((25 * 4) + (4 - 1)) & ~(4 - 1) = 100 bytes // this can happen only if SCS::Naval3DEngine::CEngine::backBufferType == ENGINE_BACKBUFFERTYPE_X8R8G8B8 at 0x004BBED8
((25 * 3) + (4 - 1)) & ~(4 - 1) = 76 bytes // at 0x004BBDB3, SCS::Naval3DEngine::CEngine::backBufferType != ENGINE_BACKBUFFERTYPE_X8R8G8B8

dib->bits = 0x103a980e
memory reading fails at 0x103aa16e+1
means an offset of +0x960 from dib->bits + .g component
this is out of bounds in case of 25x25x3=0x753=1875 bytes

CubanFoxtrot
29-11-2016, 23:29
Beside this, there're just 2 other CTD causes from the attached minidumps.

0:035> .ecxr
eax=00110000 ebx=00d53318 ecx=00d2f9f0 edx=00000000 esi=00d52c80 edi=00000001
eip=00b2d1b1 esp=0da3fac0 ebp=113c6c68 iopl=0 nv up ei pl nz ac pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010216
NavalSimEngine+0x1d1b1:
00b2d1b1 d905e0330c20 fld dword ptr ds:[200C33E0h] ds:002b:200c33e0=????????

This is a problem reading a -10000.f variable added by the mod to the NavalSimEngine .text section (it's pad/alignemnt data in the vanilla 1.04).

0:000> .ecxr
eax=0dde2ab2 ebx=0ef1a008 ecx=00000004 edx=0dde281e esi=029f6818 edi=ffffffc6
eip=005e0adc esp=0019f5c4 ebp=0dde01fa iopl=0 nv up ei ng nz na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010286
Unable to load image D:\Program Files (x86)\Steam\steamapps\common\Dangerous Waters\dangerouswaters.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for dangerouswaters.exe
*** ERROR: Module load completed but symbols could not be loaded for dangerouswaters.exe
dangerouswaters+0x1e0adc:
005e0adc 663b6c1f02 cmp bp,word ptr [edi+ebx+2] ds:002b:0ef19fd0=????

This one happens inside the 88th method (+0x15C) of db manager's virtual table. Perhaps something related to the RA mod changes to the db structures?

Maybe I will investigate them more deeply, if I'll be able to find some more free time. :)

Hope this helps you guys.
Keep up the good work!

Phantom
30-11-2016, 01:29
The crash on 2256.dmp seems caused by the "happy" coincidence of the 3D engine picking a 32-bit backbuffer (side effect of the D3D8 emulation wrapper, I believe?) and the non-power of 2 size of gen_dlg_MIDLFT.bmp of shared graphics package.

My notes about it:

Beside this, there're just 2 other CTD causes from the attached minidumps.



This is a problem reading a -10000.f variable added by the mod to the NavalSimEngine .text section (it's pad/alignemnt data in the vanilla 1.04).



This one happens inside the 88th method (+0x15C) of db manager's virtual table. Perhaps something related to the RA mod changes to the db structures?

Maybe I will investigate them more deeply, if I'll be able to find some more free time. :)

Hope this helps you guys.
Keep up the good work!

Thanks risorgimento59 (are you italian?) for your help! Unfortunately i cant do much. I hope this can help the RA team for future fixes. The only workaround i found is run DW not from steam but instead create a shortcut and run it.

CrazyIvan
30-11-2016, 01:59
TO: risorgimento59

Thank you Comrade! I replaced the wrong code for NavalSimEngine of the relative values -10000.

Non-flushed cash bug has occurred.

But on Win 7 - there is no effect of this error.

CubanFoxtrot
30-11-2016, 20:44
You're welcome CrazyIvan.

The database problem looks like broken referencing to the array of entities.
I cannot understand where the invalid index comes from, sadly.
But it seems to occur inside a loop running until a counter reaches db->profileArr[i].unk0c...
Maybe this is an hint for you.

@Phantom: Yes, I'm Italian. ;)

CrazyIvan
30-11-2016, 22:59
You're welcome CrazyIvan.

The database problem looks like broken referencing to the array of entities.
I cannot understand where the invalid index comes from, sadly.
But it seems to occur inside a loop running until a counter reaches db->profileArr[i].unk0c...
Maybe this is an hint for you.



For ver. 1.41 this has been corrected.