Привет знатокам. Некоторые игроки в карту рапортуют об одной постоянной ошибке. При нажатии на вкладку Задания (мышкой по кнопке или через F9) игра с высокой долей вероятности у них вылетает с критической ошибкой (вида SFile). Ошибка встречается только у некоторой небольшой части игроков. Лично сам я не могу её воспроизвести.
Что известно:
  • Версия Warcraft 1.26 c изменённым game.dll для игры в карты по сети весом больше 8 МБ.
  • Ошибка воспроизводится и в других картах с большим весом (>40 МБ). При чём чем больше вес карты, тем больше вероятность вылета.
  • Прямой зависимости от характеристик и конфигурации устройств нет.
  • Некоторые сообщали, что помогает полная переустановка клиента игры.
Интересует вопрос:
  • Встречались ли вы с таким? Если да, то что можете дополнительно сообщить.
  • Какие методы решения проблемы вы можете предложить как на стороне карты, так и на стороне игрока (помимо переустановки).
  • Есть ли в теории возможность сделать исправленный файл game.dll или альтернативный лаунчер вида xgm.guru/p/wc3/warcraft-iii---multiwindow , где бы этой проблемы не было?
Логи ошибки:

Принятый ответ

Вот здесь решение с помощью mix:
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
23
1
Играю всегда на multiwindow или рефе, проблемы не встречал
Какие методы решения проблемы вы можете предложить как на стороне карты,
Дать где нибудь в теме карты советы игрокам
или
так и на стороне игрока
Юзать multiwindow и не засорять свой вар приколами-модами, если не помогает юзать реф или 1.31 версию (пиратка)
Загруженные файлы
0
22
0
Если кто-то сможет хотя бы повторить баг у себя, просьба сообщить.
0
22
0
Информация от Кибергриб
Фатал происходит при вызове SMemAlloc, выделяющей 247148030 байт памяти (~247 мб) (думаю, зачем-то оно захотело загрузить файл карты в память, возможно(вероятно?) повторно)
Т.е. при этом сценарии игра пытается загрузить в память весь файл карты целиком. Соответственно, чем больше размер карты, тем с большей вероятностью память достигнет лимита (для 1.26, это ~900 МБ)
0
22
0
Вот карта-пример на которой воспроизводиться вылет. - drive.google.com/file/d/19o5_0KDWrteIzG-b6e5kEVLP-ZQgZh1C/view?u...
Алгоритм воспроизводства бага следующий:
  1. Запустить карту
  2. Cвернуть игру
  3. Развернуть игру
  4. Нажать F9
Вот карта, отличающаяся только малым весом - drive.google.com/file/d/1BBodCNXLLUMvnvL_H30VMdrQPqUwIFp0/view?u...
И здесь уже вылета не будет.
В чём может быть причина и почему вылет зависит от веса карты? Вероятно, в проведении Zlib оптимизации. Если не пережимать MPQ карты, то таким образом вылет уже не будет воспроизводиться. Возможно, стоит также поэкспериментировать с размером буфера. Это доступно, например, как опция в Wc3 Map Optimizer, и при определённых значениях такой ошибки может и не быть.
3
8
3
Сделал небольшой анализ приложенного краш-лога, померив, насколько ваша память фрагментирована.
len - длина цельного блока памяти в мегабайтах. Дальше идут библиотеки, которые занимают места по краям.
Многа букаф
((
len: 314.8359375 mb, 'c:/games/warcraft iii/redist/miles/Mp3dec.asi' --- 'C:/Program Files (x86)/ABBYY Lingvo x6/LvHook.dll'
len: 221.78125 mb, 'C:/WINDOWS/SYSTEM32/dbghelp.dll' --- 'C:/Windows/System32/Windows.Internal.Graphics.Display.DisplayColorManagement.dll'
len: 192.62109375 mb, 'c:/games/warcraft iii/Storm.dll' --- 'c:/games/warcraft iii/mss32.dll'
len: 164.3125 mb, 'C:/Program Files (x86)/ABBYY Lingvo x6/LvHook.dll' --- 'C:/WINDOWS/SYSTEM32/dbghelp.dll'
len: 146.1015625 mb, 'C:/WINDOWS/System32/DriverStore/FileRepository/nv_dispi.inf_amd64_50916785244854f2/nvldumd.dll' --- 'c:/games/warcraft iii/Storm.dll'
len: 132.23437404632568 mb, 'C:/WINDOWS/SYSTEM32/ntdll.dll' --- 'None'
len: 123.3671875 mb, 'C:/WINDOWS/SYSTEM32/AcGenral.DLL' --- 'C:/WINDOWS/SYSTEM32/winmmbase.dll'
len: 68.41796875 mb, 'C:/Program Files (x86)/ABBYY Lingvo x6/Detoured.dll' --- 'C:/WINDOWS/SYSTEM32/ColorAdapterClient.dll'
len: 66.64453125 mb, 'C:/WINDOWS/System32/CoreMessaging.dll' --- 'C:/WINDOWS/SYSTEM32/wintypes.dll'
len: 66.390625 mb, 'C:/WINDOWS/SYSTEM32/ColorAdapterClient.dll' --- 'C:/WINDOWS/SYSTEM32/gpapi.dll'
len: 59.76171875 mb, 'c:/games/warcraft iii/ijl15.dll' --- 'C:/WINDOWS/System32/DriverStore/FileRepository/nv_dispi.inf_amd64_50916785244854f2/nvd3dum.dll'
len: 51.42578125 mb, 'C:/WINDOWS/SYSTEM32/OPENGL32.dll' --- 'c:/games/warcraft iii/ijl15.dll'
len: 40.93359375 mb, 'c:/games/warcraft iii/redist/miles/Reverb3.flt' --- 'c:/games/warcraft iii/redist/miles/Mp3dec.asi'
len: 37.44921875 mb, 'c:/games/warcraft iii/war3.exe' --- 'C:/WINDOWS/SYSTEM32/cryptnet.dll'
len: 26.52734375 mb, 'C:/WINDOWS/SYSTEM32/MSACM32.dll' --- 'C:/WINDOWS/SYSTEM32/DSOUND.DLL'
len: 25.90625 mb, 'c:/games/warcraft iii/redist/miles/Msseax2.m3d' --- 'c:/games/warcraft iii/redist/miles/Reverb3.flt'
len: 20.62890625 mb, 'c:/games/warcraft iii/mss32.dll' --- 'c:/games/warcraft iii/redist/miles/Mssfast.m3d'
len: 20.32421875 mb, 'C:/WINDOWS/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.1110_none_c0da534e38c01f4d/COMCTL32.dll' --- 'C:/WINDOWS/SYSTEM32/mswsock.dll'
len: 11.86328125 mb, 'C:/Windows/System32/Windows.UI.dll' --- 'C:/Windows/System32/WindowManagementAPI.dll'
len: 11.09375 mb, 'C:/WINDOWS/SYSTEM32/urlmon.dll' --- 'C:/WINDOWS/SYSTEM32/ntmarta.dll'
len: 10.61328125 mb, 'C:/WINDOWS/System32/DriverStore/FileRepository/nv_dispi.inf_amd64_50916785244854f2/nvd3dum.dll' --- 'C:/WINDOWS/system32/nvspcap.dll'
len: 10.5390625 mb, 'C:/WINDOWS/SYSTEM32/AUDIOSES.DLL' --- 'C:/Program Files/ASUSTeKcomputer.Inc/nhAsusStrix/UserInterface/nhAsusStrixOSD.dll'
len: 8.33984375 mb, 'C:/WINDOWS/SYSTEM32/MPR.dll' --- 'C:/WINDOWS/SYSTEM32/samcli.dll'
len: 8.00390625 mb, 'C:/WINDOWS/SYSTEM32/twinapi.appcore.dll' --- 'C:/WINDOWS/SYSTEM32/textinputframework.dll'
len: 7.1953125 mb, 'C:/WINDOWS/SYSTEM32/gpapi.dll' --- 'C:/WINDOWS/System32/DriverStore/FileRepository/nv_dispi.inf_amd64_50916785244854f2/nvldumd.dll'
len: 7.08203125 mb, 'C:/WINDOWS/System32/MMDevApi.dll' --- 'C:/Program Files/ASUSTeKcomputer.Inc/nhAsusStrix/UserInterface/nhAsusStrixDevProps.dll'
len: 5.8671875 mb, 'C:/WINDOWS/SYSTEM32/IPHLPAPI.DLL' --- 'C:/WINDOWS/System32/SHLWAPI.dll'
len: 5.05859375 mb, 'C:/WINDOWS/SYSTEM32/SspiCli.dll' --- 'C:/WINDOWS/system32/rsaenh.dll'
len: 4.91015625 mb, 'c:/games/warcraft iii/redist/miles/Mssdolby.m3d' --- 'c:/games/warcraft iii/redist/miles/Msseax2.m3d'
len: 4.796875 mb, 'C:/WINDOWS/SYSTEM32/devobj.dll' --- 'C:/Program Files (x86)/ABBYY Lingvo x6/Detoured.dll'
len: 4.671875 mb, 'C:/WINDOWS/SYSTEM32/UxTheme.dll' --- 'C:/WINDOWS/SYSTEM32/USERENV.dll'
len: 4.33203125 mb, 'C:/WINDOWS/SYSTEM32/netutils.dll' --- 'C:/WINDOWS/SYSTEM32/drvstore.dll'
len: 4.26953125 mb, 'C:/WINDOWS/System32/ADVAPI32.dll' --- 'C:/WINDOWS/System32/GDI32.dll'
len: 4.0 mb, 'None' --- 'c:/games/warcraft iii/war3.exe'
len: 2.94921875 mb, 'C:/WINDOWS/SYSTEM32/UMPDC.dll' --- 'C:/WINDOWS/SYSTEM32/netutils.dll'
len: 2.09375 mb, 'C:/Program Files/ASUSTeKcomputer.Inc/nhAsusStrix/UserInterface/nhAsusStrixOSD.dll' --- 'C:/WINDOWS/SYSTEM32/d3d8thk.dll'
len: 1.96875 mb, 'C:/WINDOWS/SYSTEM32/avrt.dll' --- 'c:/games/warcraft iii/Game.dll'
len: 1.53515625 mb, 'C:/WINDOWS/SYSTEM32/d3d8.dll' --- 'C:/WINDOWS/WinSxS/x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9672_none_d08f9da24428a513/MSVCR80.dll'
len: 1.515625 mb, 'C:/WINDOWS/System32/KERNELBASE.dll' --- 'C:/WINDOWS/System32/msvcrt.dll'
len: 1.4140625 mb, 'C:/WINDOWS/SYSTEM32/dwmapi.dll' --- 'C:/WINDOWS/SYSTEM32/IPHLPAPI.DLL'
len: 1.36328125 mb, 'C:/WINDOWS/SYSTEM32/mscms.dll' --- 'C:/WINDOWS/SYSTEM32/twinapi.appcore.dll'
len: 1.35546875 mb, 'c:/games/warcraft iii/Game.dll' --- 'C:/WINDOWS/SYSTEM32/SspiCli.dll'
len: 1.16796875 mb, 'C:/WINDOWS/SYSTEM32/samcli.dll' --- 'C:/WINDOWS/SYSTEM32/WINSPOOL.DRV'
len: 1.140625 mb, 'C:/WINDOWS/SYSTEM32/dxcore.dll' --- 'C:/WINDOWS/SYSTEM32/MPR.dll'
len: 1.0234375 mb, 'C:/WINDOWS/system32/nvspcap.dll' --- 'C:/WINDOWS/SYSTEM32/mscms.dll'
len: 0.9140625 mb, 'c:/games/warcraft iii/redist/miles/Mssfast.m3d' --- 'c:/games/warcraft iii/redist/miles/Mssdolby.m3d'
len: 0.8203125 mb, 'C:/WINDOWS/SYSTEM32/msasn1.dll' --- 'C:/WINDOWS/SYSTEM32/dxcore.dll'
len: 0.76953125 mb, 'C:/WINDOWS/SYSTEM32/wintypes.dll' --- 'C:/WINDOWS/SYSTEM32/avrt.dll'
len: 0.765625 mb, 'C:/WINDOWS/SYSTEM32/dbgcore.DLL' --- 'C:/WINDOWS/SYSTEM32/WINNSI.DLL'
len: 0.71875 mb, 'C:/WINDOWS/SYSTEM32/WINMM.dll' --- 'C:/WINDOWS/SYSTEM32/WSOCK32.dll'
len: 0.66796875 mb, 'C:/WINDOWS/System32/SHLWAPI.dll' --- 'C:/WINDOWS/System32/sechost.dll'
len: 0.62890625 mb, 'C:/WINDOWS/SYSTEM32/resourcepolicyclient.dll' --- 'C:/WINDOWS/System32/MMDevApi.dll'
len: 0.53125 mb, 'C:/WINDOWS/SYSTEM32/WINNSI.DLL' --- 'C:/WINDOWS/SYSTEM32/iertutil.dll'
len: 0.46875 mb, 'C:/WINDOWS/SYSTEM32/VERSION.dll' --- 'C:/WINDOWS/SYSTEM32/UMPDC.dll'
len: 0.4609375 mb, 'C:/WINDOWS/System32/CRYPT32.dll' --- 'C:/WINDOWS/SYSTEM32/ntdll.dll'
len: 0.40234375 mb, 'C:/WINDOWS/System32/imagehlp.dll' --- 'C:/WINDOWS/System32/win32u.dll'
len: 0.37890625 mb, 'C:/WINDOWS/System32/comdlg32.dll' --- 'C:/WINDOWS/System32/msvcp_win.dll'
len: 0.171875 mb, 'C:/WINDOWS/SYSTEM32/powrprof.dll' --- 'C:/WINDOWS/SYSTEM32/dwmapi.dll'
len: 0.1640625 mb, 'C:/WINDOWS/SYSTEM32/WININET.dll' --- 'C:/WINDOWS/SYSTEM32/powrprof.dll'
len: 0.13671875 mb, 'C:/WINDOWS/SYSTEM32/srvcli.dll' --- 'C:/WINDOWS/SYSTEM32/WININET.dll'
len: 0.1015625 mb, 'C:/WINDOWS/SYSTEM32/MSIMG32.dll' --- 'C:/WINDOWS/SYSTEM32/UxTheme.dll'
len: 0.06640625 mb, 'C:/WINDOWS/SYSTEM32/apphelp.dll' --- 'C:/WINDOWS/SYSTEM32/kernel.appcore.dll'
len: 0.05859375 mb, 'C:/Windows/System32/Windows.Internal.Graphics.Display.DisplayColorManagement.dll' --- 'C:/WINDOWS/SYSTEM32/AcGenral.DLL'
len: 0.05859375 mb, 'C:/WINDOWS/System32/combase.dll' --- 'C:/WINDOWS/System32/imagehlp.dll'
len: 0.0546875 mb, 'C:/WINDOWS/SYSTEM32/PropSys.dll' --- 'C:/WINDOWS/SYSTEM32/profapi.dll'
len: 0.0546875 mb, 'C:/WINDOWS/SYSTEM32/mswsock.dll' --- 'C:/WINDOWS/SYSTEM32/wldp.dll'
len: 0.05078125 mb, 'C:/Windows/System32/WindowManagementAPI.dll' --- 'C:/WINDOWS/SYSTEM32/AUDIOSES.DLL'
len: 0.05078125 mb, 'C:/WINDOWS/SYSTEM32/CRYPTSP.dll' --- 'C:/WINDOWS/SYSTEM32/dbgcore.DLL'
len: 0.05078125 mb, 'C:/WINDOWS/SYSTEM32/WINSPOOL.DRV' --- 'C:/WINDOWS/SYSTEM32/apphelp.dll'
len: 0.05078125 mb, 'C:/WINDOWS/System32/WS2_32.dll' --- 'C:/WINDOWS/System32/combase.dll'
len: 0.05078125 mb, 'C:/WINDOWS/System32/GDI32.dll' --- 'C:/WINDOWS/System32/bcryptPrimitives.dll'
len: 0.05078125 mb, 'C:/WINDOWS/System32/ole32.dll' --- 'C:/WINDOWS/System32/CRYPT32.dll'
len: 0.046875 mb, 'C:/WINDOWS/System32/MSCTF.dll' --- 'C:/WINDOWS/System32/NSI.dll'
len: 0.04296875 mb, 'C:/WINDOWS/SYSTEM32/USERENV.dll' --- 'C:/WINDOWS/SYSTEM32/VERSION.dll'
len: 0.04296875 mb, 'C:/WINDOWS/System32/IMM32.DLL' --- 'C:/WINDOWS/System32/RPCRT4.dll'
len: 0.0390625 mb, 'C:/WINDOWS/SYSTEM32/cryptnet.dll' --- 'C:/WINDOWS/SYSTEM32/devobj.dll'
len: 0.0390625 mb, 'C:/WINDOWS/System32/sechost.dll' --- 'C:/WINDOWS/System32/WINTRUST.DLL'
len: 0.0390625 mb, 'C:/WINDOWS/System32/OLEAUT32.dll' --- 'C:/WINDOWS/System32/clbcatq.dll'
len: 0.03515625 mb, 'C:/WINDOWS/SYSTEM32/d3d8thk.dll' --- 'C:/WINDOWS/System32/CoreUIComponents.dll'
len: 0.03515625 mb, 'C:/WINDOWS/SYSTEM32/wldp.dll' --- 'C:/WINDOWS/SYSTEM32/cryptbase.dll'
len: 0.03515625 mb, 'C:/WINDOWS/System32/NSI.dll' --- 'C:/WINDOWS/System32/bcrypt.dll'
len: 0.03515625 mb, 'C:/WINDOWS/System32/shcore.dll' --- 'C:/WINDOWS/System32/SHELL32.dll'
len: 0.03515625 mb, 'C:/WINDOWS/System32/SHELL32.dll' --- 'C:/WINDOWS/System32/ole32.dll'
len: 0.03125 mb, 'C:/WINDOWS/SYSTEM32/profapi.dll' --- 'C:/WINDOWS/WinSxS/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.1110_none_c0da534e38c01f4d/COMCTL32.dll'
len: 0.03125 mb, 'C:/WINDOWS/SYSTEM32/WSOCK32.dll' --- 'C:/WINDOWS/SYSTEM32/MSIMG32.dll'
len: 0.03125 mb, 'C:/WINDOWS/System32/win32u.dll' --- 'C:/WINDOWS/System32/ucrtbase.dll'
len: 0.02734375 mb, 'C:/WINDOWS/SYSTEM32/ntmarta.dll' --- 'C:/WINDOWS/SYSTEM32/PropSys.dll'
len: 0.02734375 mb, 'C:/WINDOWS/System32/bcrypt.dll' --- 'C:/WINDOWS/System32/gdi32full.dll'
len: 0.0234375 mb, 'C:/WINDOWS/SYSTEM32/textinputframework.dll' --- 'C:/Windows/System32/Windows.UI.dll'
len: 0.0234375 mb, 'C:/WINDOWS/SYSTEM32/cryptbase.dll' --- 'C:/WINDOWS/SYSTEM32/windows.storage.dll'
len: 0.01953125 mb, 'C:/WINDOWS/WinSxS/x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.9672_none_d08f9da24428a513/MSVCR80.dll' --- 'C:/WINDOWS/SYSTEM32/GLU32.dll'
len: 0.01953125 mb, 'C:/WINDOWS/System32/cfgmgr32.dll' --- 'C:/WINDOWS/System32/comdlg32.dll'
len: 0.01953125 mb, 'C:/WINDOWS/System32/msvcp_win.dll' --- 'C:/WINDOWS/System32/shcore.dll'
len: 0.015625 mb, 'C:/WINDOWS/SYSTEM32/windows.storage.dll' --- 'C:/WINDOWS/SYSTEM32/msasn1.dll'
len: 0.01171875 mb, 'C:/WINDOWS/SYSTEM32/winmmbase.dll' --- 'C:/WINDOWS/SYSTEM32/MSACM32.dll'
len: 0.01171875 mb, 'C:/Windows/System32/InputHost.dll' --- 'C:/WINDOWS/SYSTEM32/resourcepolicyclient.dll'
len: 0.01171875 mb, 'C:/Program Files/ASUSTeKcomputer.Inc/nhAsusStrix/UserInterface/nhAsusStrixDevProps.dll' --- 'C:/WINDOWS/System32/CoreMessaging.dll'
len: 0.01171875 mb, 'C:/WINDOWS/SYSTEM32/iertutil.dll' --- 'C:/WINDOWS/SYSTEM32/urlmon.dll'
len: 0.01171875 mb, 'C:/WINDOWS/System32/WINTRUST.DLL' --- 'C:/WINDOWS/System32/WS2_32.dll'
len: 0.01171875 mb, 'C:/WINDOWS/System32/USER32.dll' --- 'C:/WINDOWS/System32/KERNEL32.DLL'
len: 0.0078125 mb, 'C:/WINDOWS/System32/CoreUIComponents.dll' --- 'C:/Windows/System32/InputHost.dll'
len: 0.0078125 mb, 'C:/WINDOWS/System32/clbcatq.dll' --- 'C:/WINDOWS/System32/IMM32.DLL'
len: 0.0078125 mb, 'C:/WINDOWS/System32/RPCRT4.dll' --- 'C:/WINDOWS/System32/KERNELBASE.dll'
len: 0.00390625 mb, 'C:/WINDOWS/SYSTEM32/DSOUND.DLL' --- 'C:/WINDOWS/SYSTEM32/d3d8.dll'
len: 0.00390625 mb, 'C:/WINDOWS/SYSTEM32/GLU32.dll' --- 'C:/WINDOWS/SYSTEM32/OPENGL32.dll'
len: 0.00390625 mb, 'C:/WINDOWS/system32/rsaenh.dll' --- 'C:/WINDOWS/SYSTEM32/CRYPTSP.dll'
len: 0.00390625 mb, 'C:/WINDOWS/SYSTEM32/kernel.appcore.dll' --- 'C:/WINDOWS/SYSTEM32/WINMM.dll'
len: 0.00390625 mb, 'C:/WINDOWS/System32/bcryptPrimitives.dll' --- 'C:/WINDOWS/System32/OLEAUT32.dll'
len: 0.00390625 mb, 'C:/WINDOWS/System32/msvcrt.dll' --- 'C:/WINDOWS/System32/cfgmgr32.dll'
len: 0.0 mb, 'C:/WINDOWS/SYSTEM32/drvstore.dll' --- 'C:/WINDOWS/SYSTEM32/srvcli.dll'
len: 0.0 mb, 'C:/WINDOWS/System32/ucrtbase.dll' --- 'C:/WINDOWS/System32/MSCTF.dll'
len: 0.0 mb, 'C:/WINDOWS/System32/gdi32full.dll' --- 'C:/WINDOWS/System32/USER32.dll'
len: 0.0 mb, 'C:/WINDOWS/System32/KERNEL32.DLL' --- 'C:/WINDOWS/System32/ADVAPI32.dll'
sum: 1919.3398427963257 mb
))
Итого, максимальный размер свободного блока между двумя библиотеками, при условии, что память выделена только под библиотеки - примерно 315 мегабайт. Размер второго блока около 230 мегабайт.
Соответственно, вы не можете выделить непрерывный кусок памяти длиннее 315 мегабайт, даже если у вас свободно около двух гигабайт памяти свободно (1919 мб по моим рассчетам, без учета выделения всего кроме библиотек)
Соответственно, ваш варкрафт умрет, пытаясь загрузить карту такого размера в память. И, из того, что известно - эта карта при нажатии F9 при условии пережатия zlib будет загружена повторно. Вот и весь ответ, памяти свободной может быть и много, а длинного непрерывного куска просто нет, вот оно и валится и с этим наверное ничего и не сделать.
ABBYY Lingvo хукает все подряд, хаха.
1
22
1
Вот здесь решение с помощью mix:
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.