KozGit / DOOM-3-BFG-VR

Doom 3 BFG VR: Fully Possessed. Doom 3 BFG with native Oculus Rift/Touch or OpenVR support
GNU General Public License v3.0
368 stars 52 forks source link

Game crashes, Imps always involved #371

Open AndersMalmgren opened 2 years ago

AndersMalmgren commented 2 years ago

Game crashes often. Its always a imp involved when it crashes., Tested with

NPi2Loup build v0.021h-Alpha

NPi2Loup commented 2 years ago

Yes this instablility was here for a long time (not only imps, but maybe fireballs) Too difficult to fix for me, I can't reproduce while debugging and never found what make it crash. Have you some wise logs ?

AndersMalmgren commented 2 years ago

Yes this instablility was here for a long time (not only imps, but maybe fireballs) Too difficult to fix for me, I can't reproduce while debugging and never found what make it crash. Have you some wise logs ?

Were does the logs land? I can check the logs next time it happens.

The bug does not happen on the old build found here only your build

AndersMalmgren commented 2 years ago

@NPi2Loup Event viewer only gives this

Faulting application name: Doom3BFGVR.exe, version: 1.0.0.1, time stamp: 0x6137de47 Faulting module name: Doom3BFGVR.exe, version: 1.0.0.1, time stamp: 0x6137de47 Exception code: 0xc0000005 Fault offset: 0x0000000000316870 Faulting process ID: 0x7984 Faulting application start time: 0x01d7d56d7a01e321 Faulting application path: E:\Spel\Doom 3 BFG EditionVR\Doom3BFGVR.exe Faulting module path: E:\Spel\Doom 3 BFG EditionVR\Doom3BFGVR.exe Report ID: a9e4f2f3-8da9-4b90-a3cc-30284db540f5 Faulting package full name: Faulting package-relative application ID:

More info from the error report file

Version=1 EventType=APPCRASH EventTime=132809381248992966 ReportType=2 Consent=1 UploadTime=132809381252025725 ReportStatus=268435456 ReportIdentifier=f1467d90-6e6d-48a7-a868-cdd8bbd9a639 IntegratorReportIdentifier=a9e4f2f3-8da9-4b90-a3cc-30284db540f5 Wow64Host=34404 NsAppName=Doom3BFGVR.exe OriginalFilename=Doom3BFG AppSessionGuid=00007984-0001-0050-21e3-017a6dd5d701 TargetAppId=W:0006d980dd047cd1dd35b90591f89e8202cc00000904!000052f4ea151007d9ec2581c78f1aa045ea1451648e!Doom3BFGVR.exe TargetAppVer=2021//09//07:21:48:55!0!Doom3BFGVR.exe BootId=4294967295 TargetAsId=3039 UserImpactVector=321925936 IsFatal=1 EtwNonCollectReason=1 Response.BucketId=400109e85d6aa13b35ec3ff560941ce4 Response.BucketTable=4 Response.LegacyBucketId=1579707892420058340 Response.type=4 Sig[0].Name=Application Name Sig[0].Value=Doom3BFGVR.exe Sig[1].Name=Application Version Sig[1].Value=1.0.0.1 Sig[2].Name=Application Timestamp Sig[2].Value=6137de47 Sig[3].Name=Fault Module Name Sig[3].Value=Doom3BFGVR.exe Sig[4].Name=Fault Module Version Sig[4].Value=1.0.0.1 Sig[5].Name=Fault Module Timestamp Sig[5].Value=6137de47 Sig[6].Name=Exception Code Sig[6].Value=c0000005 Sig[7].Name=Exception Offset Sig[7].Value=0000000000316870 DynamicSig[1].Name=OS Version DynamicSig[1].Value=10.0.19043.2.0.0.256.4 DynamicSig[2].Name=Locale ID DynamicSig[2].Value=8192 DynamicSig[22].Name=Additional Information 1 DynamicSig[22].Value=bb11 DynamicSig[23].Name=Additional Information 2 DynamicSig[23].Value=bb1124e66eb514815919523f34e44308 DynamicSig[24].Name=Additional Information 3 DynamicSig[24].Value=1ea5 DynamicSig[25].Name=Additional Information 4 DynamicSig[25].Value=1ea546904013a0fa8cd474fe09b3e770 UI[2]=E:\Spel\Doom 3 BFG EditionVR\Doom3BFGVR.exe LoadedModule[0]=E:\Spel\Doom 3 BFG EditionVR\Doom3BFGVR.exe LoadedModule[1]=C:\WINDOWS\SYSTEM32\ntdll.dll LoadedModule[2]=C:\WINDOWS\System32\KERNEL32.DLL LoadedModule[3]=C:\WINDOWS\System32\KERNELBASE.dll LoadedModule[4]=C:\WINDOWS\SYSTEM32\apphelp.dll LoadedModule[5]=C:\WINDOWS\SYSTEM32\AcGenral.DLL LoadedModule[6]=C:\WINDOWS\System32\msvcrt.dll LoadedModule[7]=C:\WINDOWS\System32\sechost.dll LoadedModule[8]=C:\WINDOWS\System32\RPCRT4.dll LoadedModule[9]=C:\WINDOWS\System32\SHLWAPI.dll LoadedModule[10]=C:\WINDOWS\System32\USER32.dll LoadedModule[11]=C:\WINDOWS\System32\win32u.dll LoadedModule[12]=C:\WINDOWS\System32\GDI32.dll LoadedModule[13]=C:\WINDOWS\System32\gdi32full.dll LoadedModule[14]=C:\WINDOWS\System32\msvcp_win.dll LoadedModule[15]=C:\WINDOWS\System32\ucrtbase.dll LoadedModule[16]=C:\WINDOWS\System32\ole32.dll LoadedModule[17]=C:\WINDOWS\System32\combase.dll LoadedModule[18]=C:\WINDOWS\System32\SHELL32.dll LoadedModule[19]=C:\WINDOWS\System32\ADVAPI32.dll LoadedModule[20]=C:\WINDOWS\SYSTEM32\USERENV.dll LoadedModule[21]=C:\WINDOWS\SYSTEM32\MPR.dll LoadedModule[22]=C:\WINDOWS\SYSTEM32\SspiCli.dll LoadedModule[23]=C:\WINDOWS\System32\IMM32.DLL LoadedModule[24]=C:\WINDOWS\System32\SETUPAPI.dll LoadedModule[25]=C:\WINDOWS\System32\cfgmgr32.dll LoadedModule[26]=C:\WINDOWS\System32\bcrypt.dll LoadedModule[27]=C:\WINDOWS\SYSTEM32\DINPUT8.dll LoadedModule[28]=C:\WINDOWS\SYSTEM32\OPENGL32.dll LoadedModule[29]=C:\WINDOWS\SYSTEM32\XINPUT1_3.dll LoadedModule[30]=C:\WINDOWS\SYSTEM32\X3DAudio1_7.dll LoadedModule[31]=C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL LoadedModule[32]=C:\WINDOWS\SYSTEM32\WINMM.dll LoadedModule[33]=C:\WINDOWS\SYSTEM32\WSOCK32.dll LoadedModule[34]=E:\Spel\Doom 3 BFG EditionVR\avutil-56.dll LoadedModule[35]=C:\WINDOWS\System32\WS2_32.dll LoadedModule[36]=E:\Spel\Doom 3 BFG EditionVR\avformat-58.dll LoadedModule[37]=C:\WINDOWS\System32\CRYPT32.dll LoadedModule[38]=C:\WINDOWS\SYSTEM32\GLU32.dll LoadedModule[39]=E:\Spel\Doom 3 BFG EditionVR\swscale-5.dll LoadedModule[40]=E:\Spel\Doom 3 BFG EditionVR\avcodec-58.dll LoadedModule[41]=E:\Spel\Doom 3 BFG EditionVR\swresample-3.dll LoadedModule[42]=E:\Spel\Doom 3 BFG EditionVR\openvr_api.dll LoadedModule[43]=C:\WINDOWS\SYSTEM32\CRYPTSP.dll LoadedModule[44]=C:\WINDOWS\system32\rsaenh.dll LoadedModule[45]=C:\WINDOWS\SYSTEM32\CRYPTBASE.dll LoadedModule[46]=C:\WINDOWS\System32\bcryptPrimitives.dll LoadedModule[47]=C:\WINDOWS\SYSTEM32\ncrypt.dll LoadedModule[48]=C:\WINDOWS\SYSTEM32\NTASN1.dll LoadedModule[49]=C:\WINDOWS\SYSTEM32\inputhost.dll LoadedModule[50]=C:\WINDOWS\System32\shcore.dll LoadedModule[51]=C:\WINDOWS\SYSTEM32\CoreMessaging.dll LoadedModule[52]=C:\WINDOWS\System32\OLEAUT32.dll LoadedModule[53]=C:\WINDOWS\SYSTEM32\PROPSYS.dll LoadedModule[54]=C:\WINDOWS\SYSTEM32\wintypes.dll LoadedModule[55]=C:\WINDOWS\SYSTEM32\CoreUIComponents.dll LoadedModule[56]=C:\WINDOWS\SYSTEM32\ntmarta.dll LoadedModule[57]=C:\WINDOWS\SYSTEM32\kernel.appcore.dll LoadedModule[58]=C:\WINDOWS\system32\uxtheme.dll LoadedModule[59]=C:\ProgramData\A-Volute\A-Volute.28054DF1F58B4\Modules\ScheduledModules\x64\AudioDevProps2.dll LoadedModule[60]=C:\ProgramData\A-Volute\A-Volute.28054DF1F58B4\Modules\ScheduledModules\x64\NahimicOSD.dll LoadedModule[61]=C:\ProgramData\A-Volute\A-Volute.28054DF1F58B4\Modules\ScheduledModules\x64\ProductInfo.dll LoadedModule[62]=C:\ProgramData\A-Volute\A-Volute.SonicStudio3\Modules\ScheduledModules\x64\AudioDevProps2.dll LoadedModule[63]=C:\WINDOWS\System32\MSCTF.dll LoadedModule[64]=C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\comctl32.DLL LoadedModule[65]=C:\WINDOWS\SYSTEM32\TextShaping.dll LoadedModule[66]=C:\WINDOWS\SYSTEM32\DEVOBJ.dll LoadedModule[67]=C:\WINDOWS\System32\WINTRUST.dll LoadedModule[68]=C:\WINDOWS\SYSTEM32\MSASN1.dll LoadedModule[69]=C:\WINDOWS\System32\NSI.dll LoadedModule[70]=C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL LoadedModule[71]=C:\WINDOWS\SYSTEM32\windows.storage.dll LoadedModule[72]=C:\WINDOWS\SYSTEM32\Wldp.dll LoadedModule[73]=C:\WINDOWS\SYSTEM32\profapi.dll LoadedModule[74]=C:\WINDOWS\SYSTEM32\iertutil.dll LoadedModule[75]=C:\WINDOWS\System32\clbcatq.dll LoadedModule[76]=C:\WINDOWS\System32\imagehlp.dll LoadedModule[77]=C:\WINDOWS\SYSTEM32\gpapi.dll LoadedModule[78]=c:\program files\oculus\support\oculus-runtime\RuntimeIPCServiceClient_64.dll LoadedModule[79]=C:\WINDOWS\SYSTEM32\DbgHelp.dll LoadedModule[80]=C:\WINDOWS\SYSTEM32\dxcore.dll LoadedModule[81]=E:\Spel\Steam\steamapps\common\SteamVR\bin\vrclient_x64.dll LoadedModule[82]=C:\WINDOWS\SYSTEM32\d3d11.dll LoadedModule[83]=C:\WINDOWS\SYSTEM32\MSVCP140.dll LoadedModule[84]=C:\WINDOWS\SYSTEM32\VERSION.dll LoadedModule[85]=C:\WINDOWS\SYSTEM32\dxgi.dll LoadedModule[86]=C:\WINDOWS\SYSTEM32\VCRUNTIME140.dll LoadedModule[87]=C:\WINDOWS\SYSTEM32\WTSAPI32.dll LoadedModule[88]=C:\WINDOWS\SYSTEM32\VCRUNTIME140_1.dll LoadedModule[89]=C:\WINDOWS\SYSTEM32\tdh.dll LoadedModule[90]=C:\WINDOWS\SYSTEM32\mscms.dll LoadedModule[91]=C:\WINDOWS\SYSTEM32\ColorAdapterClient.dll LoadedModule[92]=C:\Windows\System32\Windows.Internal.Graphics.Display.DisplayColorManagement.dll LoadedModule[93]=C:\Windows\System32\AppXDeploymentClient.dll LoadedModule[94]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_253e24b785ea60ca\nvoglv64.dll LoadedModule[95]=C:\WINDOWS\SYSTEM32\cryptnet.dll LoadedModule[96]=C:\WINDOWS\SYSTEM32\drvstore.dll LoadedModule[97]=C:\WINDOWS\SYSTEM32\dwmapi.dll LoadedModule[98]=C:\WINDOWS\SYSTEM32\powrprof.dll LoadedModule[99]=C:\WINDOWS\SYSTEM32\UMPDC.dll LoadedModule[100]=C:\WINDOWS\SYSTEM32\WINSTA.dll LoadedModule[101]=C:\WINDOWS\SYSTEM32\textinputframework.dll LoadedModule[102]=C:\WINDOWS\SYSTEM32\HID.DLL LoadedModule[103]=C:\WINDOWS\system32\XAudio2_7.dll LoadedModule[104]=C:\WINDOWS\System32\MMDevApi.dll LoadedModule[105]=C:\WINDOWS\SYSTEM32\AudioSes.dll LoadedModule[106]=C:\ProgramData\A-Volute\A-Volute.SonicStudio3\Modules\ScheduledModules\x64\ProductInfo.dll LoadedModule[107]=C:\WINDOWS\SYSTEM32\resourcepolicyclient.dll LoadedModule[108]=C:\Windows\System32\Windows.UI.dll LoadedModule[109]=C:\Windows\System32\WindowManagementAPI.dll LoadedModule[110]=C:\WINDOWS\SYSTEM32\twinapi.appcore.dll LoadedModule[111]=C:\WINDOWS\SYSTEM32\avrt.dll LoadedModule[112]=C:\WINDOWS\system32\nvapi64.dll LoadedModule[113]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_253e24b785ea60ca\nvldumdx.dll LoadedModule[114]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_253e24b785ea60ca\nvwgf2umx.dll LoadedModule[115]=C:\WINDOWS\System32\Speech\Common\sapi.dll LoadedModule[116]=C:\WINDOWS\SYSTEM32\msdmo.dll LoadedModule[117]=C:\WINDOWS\SYSTEM32\MSACM32.dll LoadedModule[118]=C:\WINDOWS\SYSTEM32\winmmbase.dll LoadedModule[119]=C:\Windows\System32\mfwmaaec.dll LoadedModule[120]=C:\WINDOWS\System32\Speech\Engines\SR\spsreng.dll LoadedModule[121]=C:\WINDOWS\System32\Speech\Engines\SR\srloc.dll LoadedModule[122]=C:\WINDOWS\SYSTEM32\urlmon.dll LoadedModule[123]=C:\WINDOWS\SYSTEM32\srvcli.dll LoadedModule[124]=C:\WINDOWS\SYSTEM32\netutils.dll LoadedModule[125]=C:\WINDOWS\SYSTEM32\d3d9.dll LoadedModule[126]=C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_253e24b785ea60ca\nvd3dumx.dll LoadedModule[127]=C:\WINDOWS\System32\msxml3.dll LoadedModule[128]=C:\WINDOWS\system32\mswsock.dll LoadedModule[129]=C:\WINDOWS\system32\napinsp.dll LoadedModule[130]=C:\WINDOWS\system32\pnrpnsp.dll LoadedModule[131]=C:\WINDOWS\system32\wshbth.dll LoadedModule[132]=C:\WINDOWS\system32\NLAapi.dll LoadedModule[133]=C:\WINDOWS\SYSTEM32\DNSAPI.dll LoadedModule[134]=C:\WINDOWS\System32\winrnr.dll LoadedModule[135]=C:\WINDOWS\System32\fwpuclnt.dll LoadedModule[136]=C:\Windows\System32\rasadhlp.dll State[0].Key=Transport.DoneStage1 State[0].Value=1 OsInfo[0].Key=vermaj OsInfo[0].Value=10 OsInfo[1].Key=vermin OsInfo[1].Value=0 OsInfo[2].Key=verbld OsInfo[2].Value=19043 OsInfo[3].Key=ubr OsInfo[3].Value=1288 OsInfo[4].Key=versp OsInfo[4].Value=0 OsInfo[5].Key=arch OsInfo[5].Value=9 OsInfo[6].Key=lcid OsInfo[6].Value=1033 OsInfo[7].Key=geoid OsInfo[7].Value=221 OsInfo[8].Key=sku OsInfo[8].Value=4 OsInfo[9].Key=domain OsInfo[9].Value=0 OsInfo[10].Key=prodsuite OsInfo[10].Value=256 OsInfo[11].Key=ntprodtype OsInfo[11].Value=1 OsInfo[12].Key=platid OsInfo[12].Value=10 OsInfo[13].Key=sr OsInfo[13].Value=0 OsInfo[14].Key=tmsi OsInfo[14].Value=221346245 OsInfo[15].Key=osinsty OsInfo[15].Value=3 OsInfo[16].Key=iever OsInfo[16].Value=11.789.19041.0-11.0.1000 OsInfo[17].Key=portos OsInfo[17].Value=0 OsInfo[18].Key=ram OsInfo[18].Value=32677 OsInfo[19].Key=svolsz OsInfo[19].Value=476 OsInfo[20].Key=wimbt OsInfo[20].Value=0 OsInfo[21].Key=blddt OsInfo[21].Value=191206 OsInfo[22].Key=bldtm OsInfo[22].Value=1406 OsInfo[23].Key=bldbrch OsInfo[23].Value=vb_release OsInfo[24].Key=bldchk OsInfo[24].Value=0 OsInfo[25].Key=wpvermaj OsInfo[25].Value=0 OsInfo[26].Key=wpvermin OsInfo[26].Value=0 OsInfo[27].Key=wpbuildmaj OsInfo[27].Value=0 OsInfo[28].Key=wpbuildmin OsInfo[28].Value=0 OsInfo[29].Key=osver OsInfo[29].Value=10.0.19041.1288.amd64fre.vb_release.191206-1406 OsInfo[30].Key=buildflightid OsInfo[30].Value=52B26023-6AFB-4B98-A9BA-096039A02240.1 OsInfo[31].Key=edition OsInfo[31].Value=Enterprise OsInfo[32].Key=ring OsInfo[32].Value=Retail OsInfo[33].Key=expid OsInfo[34].Key=fconid OsInfo[35].Key=containerid OsInfo[36].Key=containertype OsInfo[37].Key=edu OsInfo[37].Value=0 FriendlyEventName=Stopped working ConsentKey=APPCRASH AppName=DOOM 3: BFG Edition AppPath=E:\Spel\Doom 3 BFG EditionVR\Doom3BFGVR.exe NsPartner=windows NsGroup=windows8 ApplicationIdentity=72D6F93E841F201BA7D1790AC1D11CE9 MetadataHash=-2013806150

AndersMalmgren commented 2 years ago

Crash happened with a normal zombie soldier today,

dfmlege commented 8 months ago

So as I was getting frustrated with the crashing, I installed visual studio 2022 and pulled the source from NPi's fork to see if I can troubleshoot this on my own.

I believe this issue is happening in Projectile.cpp. Under the function idProjectile::Launch, there was logic to check if the player is throwing a grenade, but it's not correctly checking if the entity is a player or an enemy first. Sometimes when an enemy shoots a projectile, the function confuses the enemy as a player, which can result in an access violation.

Here's the snippet, above it this line should be added: "if( ( owner.GetEntity() && owner.GetEntity()->IsType( idPlayer::Type ) ) )"

// Koz if throwing a grenade use the tracked hand velocity when using motion controls if the controller is not mounted
if ( game->isVR && commonVr->VR_USE_MOTION_CONTROLS && !vr_mountedWeaponController.GetBool() )
{
    idPlayer* player = static_cast<idPlayer*>( owner.GetEntity() );
    if( player )
    {
        if ( player->weapon )
        {
            if ( player->weapon->IdentifyWeapon() == WEAPON_HANDGRENADE )
            {
                speed = player->hands[0].throwVelocity * vr_throwPower.GetFloat();
            }
        }
    }
}

A previous commit for Koz's repo moved the grenade logic elsewhere which should also address the issue, but it's not implemented in the latest release. Instead it was incorporated into Doom3Quest.

For now I implemented the fix on my local repository and I'm currently testing it to see if it helps with the crashing. I also backported Doom3Quest's fix for #363. If it stops the crashing I may share my own release, but I'm not very familiar with github so I'm not sure if it's better to merge with NPi's fork or make a fork on my own.

NPi2Loup commented 7 months ago

If you're ok, I will make a new release with your fix :)

dfmlege commented 7 months ago

@NPi2Loup Thanks!