FWGS / xash3d-fwgs

Xash3D FWGS engine.
1.51k stars 224 forks source link

Не удаётся воспроизвести демо #1099

Closed Vladislav4KZ closed 1 year ago

Vladislav4KZ commented 1 year ago
Sys_Crash: address 6F59B55E, code C0000005
 0 6F59B55E vgui::ScrollBar2::ScrollBar2 (client.dll)
 1 6F5BE36F V_CalcRefdef (client.dll)
 2 727412CB V_RenderView (D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_view.c:337:0) (xash.dll)
 3 72735CBE SCR_UpdateScreen (D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_scrn.c:577:0) (xash.dll)
 4 72720466 Host_ClientFrame (D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_main.c:3073:0) (xash.dll)
 5 7266C979 Host_Frame (D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host.c:697:0) (xash.dll)
 6 7266E025 COM_Frame (D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host_state.c:194:21) (xash.dll)
 7 7266D88A Host_Main (D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host.c:1226:0) (xash.dll)
 8 00BE7655 WinMain (D:\a\xash3d-fwgs\xash3d-fwgs\game_launch\game.cpp:202:80) (xash3d.exe)
 9 00BE7982 __scrt_common_main_seh (D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:26) (xash3d.exe)
 10 7668FA29 BaseThreadInitThunk (KERNEL32.DLL)
 11 77587BB(ntdll.dll)
 12 77587B8(ntdll.

Я просто записал трёхсекундную демку на локальном сервере и пытался её воспроизвести. Игра крашнулась.

Раньше такой проблемы не было.

Vladislav4KZ commented 1 year ago

Теперь вместо падения движка, при воспроизведении демо появляются следующие ошибки в консоли:

[2022:11:17|10:58:38] Last 32 messages parsed.
[2022:11:17|10:58:38] 12095 0109 HideWeapon
[2022:11:17|10:58:38] 12095 0111 SetFOV
[2022:11:17|10:58:38] 12095 0113 Health
[2022:11:17|10:58:38] 12095 0115 Battery
[2022:11:17|10:58:38] 12095 0118 Damage
[2022:11:17|10:58:38] 12095 0131 FlashBat
[2022:11:17|10:58:38] 12095 0133 Train
[2022:11:17|10:58:38] 12095 0135 WeaponList
[2022:11:17|10:58:38] 12095 0161 WeaponList
[2022:11:17|10:58:38] 12095 0190 WeaponList
[2022:11:17|10:58:38] 12095 0212 WeaponList
[2022:11:17|10:58:38] 12095 0236 WeaponList
[2022:11:17|10:58:38] 12095 0263 WeaponList
[2022:11:17|10:58:38] 12095 0289 WeaponList
[2022:11:17|10:58:38] 12095 0311 WeaponList
[2022:11:17|10:58:38] 12095 0335 WeaponList
[2022:11:17|10:58:38] 12095 0358 WeaponList
[2022:11:17|10:58:38] 12095 0386 WeaponList
[2022:11:17|10:58:38] 12095 0416 WeaponList
[2022:11:17|10:58:38] 12095 0443 WeaponList
[2022:11:17|10:58:38] 12095 0469 WeaponList
[2022:11:17|10:58:38] 12095 0493 AmmoX
[2022:11:17|10:58:38] 12095 0496 CurWeapon
[2022:11:17|10:58:38] 12095 0500 CurWeapon
[2022:11:17|10:58:38] 12095 0504 Bhopcap
[2022:11:17|10:58:38] 12095 0506 svc_deltamovevars
[2022:11:17|10:58:38] 12095 0560 svc_updateuserinfo
[2022:11:17|10:58:38] 12095 0757 svc_time
[2022:11:17|10:58:38] 12095 0762 svc_setangle
[2022:11:17|10:58:38] 12095 0769 svc_clientdata
[2022:11:17|10:58:38] 12095 0854 svc_packetentities
[2022:11:17|10:58:38] BAD:    0:svc_bad
[2022:11:17|10:58:38] Wrote erroneous message to buffer.dat
[2022:11:17|10:58:38] Host_Error: svc_bad
a1batross commented 1 year ago

Можешь сам demo файл скинуть? Я записал у себя небольшой (было полезно как раз для исправления лучей), вполне работало.

Vladislav4KZ commented 1 year ago

Можешь сам demo файл скинуть? Я записал у себя небольшой (было полезно как раз для исправления лучей), вполне работало.

Кидаю две демки. Одна записана на локальном сервере, которая воспроизводит падение движка, а другая демка из-за которой появляются ошибки в консоли без падения движка, записана на сервере "Test Server Xash3D FWGS 0.20.1" .

testdemo_listenserver.zip - собственно, демка с моего локального сервера elin_testserver.zip - а это демка записанная с сервера от Elin "Test Server Xash3D FWGS 0.20.1"

a1batross commented 1 year ago

В testdemo_listenserver.dem у меня краша нет, даже с включенным ASAN. Возможно исправили?

В elin_testserver.dem похоже неправильно записан сигнон. Пакеты ДО включения записываются во временный файл demoheader, а после начала записи demoheader приклеивается в начало. В файле огромный кусок с нулями, предположительно как раз появившийся как раз после склейки demoheader.

a1batross commented 1 year ago

Новые подробности.

Кусок из нулей идёт перед dem_stop первой секции, которая как раз является приклееным demoheader.

Это значит в demoheader изначально был большой кусок из нулей.

a1batross commented 1 year ago

Temporary fix in 9e54ddfd

Vladislav4KZ commented 1 year ago

Temporary fix in 9e54ddfd

Нет, у меня при воспроизведении демок всё ещё крашится движок.

Vladislav4KZ commented 1 year ago

Нет, у меня при воспроизведении демок всё ещё крашится движок.

Выяснил причину, это из-за установленного клиента OpenAG. С оригинальным client.dll не крашится.

Vladislav4KZ commented 1 year ago

Выяснил причину, это из-за установленного клиента OpenAG. С оригинальным client.dll не крашится.

Вот что пишет отладчик в Visual Studio:

Вызвано исключение: нарушение доступа для чтения. pparams->cmd было nullptr.

Стек вызовов

>   client.dll!CHudStrafeGuide::Update(ref_params_s * pparams) Строка 112   C++
    client.dll!V_CalcRefdef(ref_params_s * pparams) Строка 1703 C++
    xash.dll!V_RenderView() Строка 337  C
    xash.dll!SCR_UpdateScreen() Строка 577  C
    xash.dll!Host_ClientFrame() Строка 3118 C
    xash.dll!Host_Frame(float time) Строка 711  C
    [Внедренный фрейм] xash.dll!Host_RunFrame(float) Строка 144 C
    xash.dll!COM_Frame(float time) Строка 194   C
    xash.dll!Host_Main(int argc, char * * argv, const char * progname, int bChangeGame, void(*)(const char *) func) Строка 1250 C
    [Внедренный фрейм] xash3d.exe!Sys_Start() Строка 166    C++
    xash3d.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrevInst, char * cmdLine, int nShow) Строка 202  C++
    [Внешний код]   
    [Указанные ниже кадры могут быть неверны или отсутствовать, символы для kernel32.dll не загружены]

Стек вызовов с исходными путями

client.dll!CHudStrafeGuide::Update(ref_params_s * pparams) Строка 112
    в C:\Users\Admin\source\repos\OpenAG\cl_dll\hud_strafeguide.cpp(112)
client.dll!V_CalcRefdef(ref_params_s * pparams) Строка 1703
    в C:\Users\Admin\source\repos\OpenAG\cl_dll\view.cpp(1703)
xash.dll!V_RenderView() Строка 337
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_view.c(337)
xash.dll!SCR_UpdateScreen() Строка 577
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_scrn.c(577)
xash.dll!Host_ClientFrame() Строка 3118
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\client\cl_main.c(3118)
xash.dll!Host_Frame(float time) Строка 711
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host.c(711)
[Внедренный фрейм] xash.dll!Host_RunFrame(float) Строка 144
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host_state.c(144)
xash.dll!COM_Frame(float time) Строка 194
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host_state.c(194)
xash.dll!Host_Main(int argc, char * * argv, const char * progname, int bChangeGame, void(*)(const char *) func) Строка 1250
    в D:\a\xash3d-fwgs\xash3d-fwgs\engine\common\host.c(1250)
[Внедренный фрейм] xash3d.exe!Sys_Start() Строка 166
    в D:\a\xash3d-fwgs\xash3d-fwgs\game_launch\game.cpp(166)
xash3d.exe!WinMain(HINSTANCE__ * hInst, HINSTANCE__ * hPrevInst, char * cmdLine, int nShow) Строка 202
    в D:\a\xash3d-fwgs\xash3d-fwgs\game_launch\game.cpp(202)
[Внешний код]
[Указанные ниже кадры могут быть неверны или отсутствовать, символы для kernel32.dll не загружены]