BonneCW / GD3D11

D3D11-Renderer for Gothic and Gothic 2
GNU General Public License v3.0
25 stars 4 forks source link

teleport bug insight #30

Open TheGrandNagus opened 6 years ago

TheGrandNagus commented 6 years ago

I am currently playing Gothic 1 with gd3d11 version 17.6.7 and are now facing the teleport bug.

It has been reported before here: https://github.com/ataulien/GD3D11/issues/13 It is also mentioned several times around the web.

When trying to use a teleportating rune/scroll the game freezes and only the sound keeps playing (actually the sound of the location you are teleporting to), while namless guy is stuck at the end of his teleportation animation at the place you are teleporting from. This bug is especially nasty insofar that it freezes the mouse even when tasking out of the application.

The bug does not seem to appear anymore when Visual FX Draw Distance is set to a value < 2.

While normally the game will not show its error output window (Does anyone know the reason for this?), I was in luck one time. It showed me that the crash was caused by a read access violation and copied a stacktrace to the clipboard. here it is:

======================================= UNHANDLED EXCEPTION OCCURED ======================================================
======================================= CRASH INFOS: =====================================================================
GOTHIC 1.08k_mod, Parser Version: 50
User:  ,  CPUType: 586,  Mem: 0 MB total, 0 MB free
Camera: Pos(-60535.6094/4137.0791/1799.04077), At(4.42078544e-007/-0.0889777169/0.996033609)
Startup Options:-game:gothicgame.ini
=============================================== CALLSTACK : ==============================================================
0023:6B7955A5 (0x0DEC3A60 0x0126F7C4 0x6B75C37A 0x3D4B93C0) DDRAW.dll, RegisterSpecialCase()+61333 byte(s)
0023:6B75C4E1 (0x6B78FF6D 0x00000000 0x3D4B9C7C 0x0A18BF68) DDRAW.dll
0023:6B75D615 (0x3D4B9D04 0x0126FA1C 0x016483E0 0x01648348) DDRAW.dll
0023:6B758156 (0x0126FA1C 0x0DEC1DE8 0x00000000 0x00000002) DDRAW.dll
0023:6B7831BA (0x01648348 0x00000000 0x0126F9A0 0x00000811) DDRAW.dll
0023:0071F1C0 (0x0126FC0C 0x007C8766 0xFFFFFFFF 0x00428A0D) GothicMod.exe, zCRnd_D3D::Vid_GetFrontBufferCopy()+80 byte(s), D:\dev\gothic\current_work\ZenGin\_Kurt\zRndD3D_Vid.cpp, line 185+49 byte(s)
0023:0071B0B9 (0xFFFFFFFF 0x0042943E 0x0000000F 0x0000003F) GothicMod.exe, zCRnd_D3D::CreateTextureConvert()+73 byte(s), D:\dev\gothic\current_work\ZenGin\_Kurt\zRndD3D_Texture.cpp, line 208
0023:0078FFC6 (0x0000000F 0x0000003F 0x01671CC0 0x00000000) GothicMod.exe, SetFileAttributesA()+24106 byte(s)
0023:0042943E (0x00000001 0x170E90C0 0x00000000 0x000AD9EA) GothicMod.exe, CGameManager::HandleEvent()+126 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 1600
0023:006FBA01 (0x00000000 0x015F36CF 0x0126FECC 0x00000000) GothicMod.exe, zCInputCallback::GetInput()+49 byte(s), D:\dev\gothic\current_work\ZenGin\_Ulf\zview.cpp, line 205+20 byte(s)
0023:00424F5A (0x007D1078 0x0126FD38 0x00050238 0x170E90C0) GothicMod.exe, CGameManager::Run()+1130 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 699
0023:006D867B (0x7EFDE000 0x0000002C 0x00000000 0x00000000) GothicMod.exe, MainProg()+75 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\Phoenix.cpp, line 115
0023:004F4326 (0x00400000 0x00000000 0x015F36CF 0x00000001) GothicMod.exe, HandledWinMain()+966 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 772
0023:004F3E90 (0x00400000 0x00000000 0x015F36CF 0x00000001) GothicMod.exe, WinMain()+128 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 684+21 byte(s)
0023:0077A9B8 (0x7EFDE000 0x0126FFD4 0x77CC9882 0x7EFDE000) GothicMod.exe, WinMainCRTStartup()+224 byte(s)
0023:7739337A (0x7EFDE000 0x76F65A19 0x00000000 0x00000000) kernel32.dll, BaseThreadInitThunk()+18 byte(s)
0023:77CC9882 (0x0077A8D8 0x7EFDE000 0x00000000 0x00000000) ntdll.dll, RtlInitializeExceptionChain()+99 byte(s)
0023:77CC9855 (0x0077A8D8 0x7EFDE000 0x00000000 0x00905A4D) ntdll.dll, RtlInitializeExceptionChain()+54 byte(s)

Maybe this will be of some help.

BonneCW commented 6 years ago

Thanks for these detailed information. I'll have a look into this bug for the next patch, maybe I can figure out a solution.

Katharsas commented 6 years ago

This bug is also seems to only happen in Gothic 1 and seems to be distance or resource dependent. For example, there are people that can teleport from old camp to swamp camp fine, bot cannot teleport from new camp to swamp camp directly (so they have to walk some distance, then they can teleport).