Skip to content

Splinter Cell Pandora Tomorrow: crash* when activating thermal vision #210

@ThirteenAG

Description

@ThirteenAG

*a debug break really

 	D3DDrv.dll!5a31705c()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for D3DDrv.dll]		Annotated Frame
 	D3DDrv.dll!5a35c051()	Unknown	Non-user code. Cannot find or open the PDB file.
 	D3DDrv.dll!5a34bd02()	Unknown	Non-user code. Cannot find or open the PDB file.
 	D3DDrv.dll!5a32550e()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Engine.dll!5c234028()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Engine.dll!5c248e5d()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Engine.dll!5c23ba91()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Core.dll!5c473f71()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Core.dll!5c43a9b5()	Unknown	Non-user code. Cannot find or open the PDB file.
 	SplinterCell2.exe!10192d9b()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Core.dll!5c4737e0()	Unknown	Non-user code. Cannot find or open the PDB file.
 	SplinterCell2.exe!10192d82()	Unknown	Non-user code. Cannot find or open the PDB file.
 	Core.dll!5c4737e0()	Unknown	Non-user code. Cannot find or open the PDB file.
 	d3d9.dll!CD3DDDIDX10TL::SetViewport()	Unknown	Non-user code. Symbols loaded without source information.
 	45160a8f()	Unknown	Non-user code
>	d3d8.dll!Direct3DDevice8::SetRenderState(_D3DRENDERSTATETYPE State=0x00000173, unsigned long Value=0x0f000100) Line 751	C++	Symbols loaded.
Image
void __thiscall UD3DRenderDevice::AssembleAndCreateVertexShader(
        UD3DRenderDevice *this,
        char *Locale,
        unsigned int a3,
        unsigned int *a4,
        unsigned int *a5)
{
  const char *v6; // eax
  int v7; // esi
  int v8; // eax
  struct HKEY__ phkResult; // [esp+Ch] [ebp-8h] BYREF
  int v10; // [esp+10h] [ebp-4h] BYREF

  phkResult.unused = 0;
  v10 = 0;
  if ( sub_1000589D(Locale, Locale, (int (__stdcall *)())strlen(Locale), 1u, 0, &phkResult, &v10) < 0 )
  {
    v6 = (const char *)(*(int (__stdcall **)(int))(*(_DWORD *)v10 + 12))(v10);
    appFromAnsi(v6);
    appFromAnsi(Locale);
    __debugbreak();
  }
  if ( v10 )
  {
    (*(void (__stdcall **)(int))(*(_DWORD *)v10 + 8))(v10);
    v10 = 0;
  }
  v7 = **((_DWORD **)this + 4517);
  v8 = (*(int (__stdcall **)(int, unsigned int *, unsigned int))(*(_DWORD *)phkResult.unused + 12))(
         phkResult.unused,
         a5,
         a3);
  if ( (*(int (__stdcall **)(_DWORD, unsigned int *, int))(v7 + 300))(*((_DWORD *)this + 4517), a4, v8) < 0 )
    __debugbreak();
  if ( phkResult.unused )
  {
    (*(void (__stdcall **)(int))(*(_DWORD *)phkResult.unused + 8))(phkResult.unused);
    phkResult.unused = 0;
  }
  if ( v10 )
    (*(void (__stdcall **)(int))(*(_DWORD *)v10 + 8))(v10);
}

Game code ends up at a second __debugbreak(); location.

If I continue, same happens after

HRESULT STDMETHODCALLTYPE Direct3DDevice8::SetVertexShaderConstant(DWORD Register, const void *pConstantData, DWORD ConstantCount)
{
	return ProxyInterface->SetVertexShaderConstantF(Register, static_cast<const float *>(pConstantData), ConstantCount);
}

and eventually it continues, only some objects aren't visible, like the player:

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions