на главную
об игре
Diablo 2 28.06.2000

Infite loop баг в Диабло 2

Cтранно, что никто не поднимает эту тему.
Диабло жрёт полностью одно ядро процессора не зависимо от его модели. У меня i5 и когда диабло в фокусе она жрёт 25% ресурсов (одно ядро четырёхъядерного).
Вне фокуса нагрузка стандартная, около 1%.
Погуглив я выяснил, что это типичная проблема у всех и она легко решается на уровне client.dll, проверено в сингле.
Однако классик команда блязов ленится что-то для этого делать, хотя на офф форуме им уже по полочкам всё разложили.
Очевидно, что это типичный Infite loop баг, ждущий input. Особенно заметен в менюшке и в чате (щито???).
Можно ли на пг пофиксить этот баг? Это очень просто.
Сейчас я использую прогу, запрещающую отжирать диабле больше заданного процента CPu.
Но это очень неудобно и хотелось бы чтобы администрация пофиксила всё.
Оригинальный тред на близфоруме с описанием кода 1.13д

Спойлер

[1.13d] D2client.27713

Code section

6FAD7713 75 17 JNZ SHORT 6FAD772C ; <-- NOP single player
6FAD7715 A1 DCD1BC6F MOV EAX,DWORD PTR DS:[6FBCD1DC]
6FAD771A 83F8 06 CMP EAX,6
6FAD771D 74 0D JE SHORT 6FAD772C ; <-- NOP battle.net
6FAD7715 A1 DCD1BC6F MOV EAX,DWORD PTR DS:[6FBCD1DC]
6FAD771A 83F8 06 CMP EAX,6
6FAD771D 74 0D JE SHORT 6FAD772C
6FAD771F 83F8 08 CMP EAX,8
6FAD7722 74 08 JE SHORT 6FAD772C ; <-- NOP multi player
6FAD7724 6A 0A PUSH 0A ; Time = 10. ms (sleep function)
https://us.battle.net/forums/en/bnet/topic/20743464511

Комментарии: 19
Ваш комментарий
фавыыав написал:
Cтранно, что никто не поднимает эту тему.

Странно, что никто не пользуется поиском по форуму.

0

Добер
не для меня роскошь

поиском в гугле пользуюсь и если треда с решением нет на пг, то его нет и в гугле

1

фавыыав
по такому запросу грех что-то ждать

-2

Добер
Не отравляй мне жизнь!
Или запости сюда 100% солюшн или гуляй с миром!
Тебе своих топиков для фуда мало?

2

фавыыав
ты предлагаешь мне открывать поиск за тебя? ну уж нет. да ту ти поиск особо не нужен,не так сложно сделать чтобы д2 работал на всех ядрах, место одного.

-1

Добер
Я не об этом. У меня распределяется на все ядра уже. Но мне не нужно, чтобы игра 20 летней давности отнимала 25% ресурсов моего процессора 2017 года выпуска.
Так что адьё, иди в школу доучиваться читать. Я предлагаю полное решение, благодаря которому д2 будет отнимать столько ресурсов, сколько нужно для корректной работы - 1-2%. А не просто раскидывать обжерку на 4 ядра, что системы по умолчанию уже делают.

Obsessed
CPU

1

Может быть прога CPU - Control

0

T6000
Да юзаю ограничитель но хотелось солюшн с починкой слип команды от сервa :(

0

Кстати, в 1 14 баг частично пофикшен: его нет в менюшке и в чате. А в 1 13 крутит по полной, даже больше, чем в самой игре.

0

в теме есть ряд неточностей
во-первых, d2client.dll (про который написано в первом посте) никаким боком не связан ни с меню, ни в чат каналами - он отвечает только за то время когда чар в игре
во-вторых, в приведённом коде чётко видно - sleep там есть, авторы кода в курсе про него, но они сознательно решили что в ряде случаев делать его не надо, т.е. это не баг а целенаправленная фича
в-третьих, если спрашиваются фиксы от пг (с починкой слип команды от сервa) то надо бы проверить, есть ли проблема в 2.03 (и в случае с игрой я бы посоветовал проверять с ключом -fps25), потому как исправить что-то в 1.1х могут только близзы, выпустив 1.15

0

firkax
Здравствуйте!
ценю, что Вы пытаетесь разобраться в вопросе.
вы немного не правы в следующем:

firkax написал:
d2client.dll (про который написано в первом посте) никаким боком не связан ни с меню, ни в чат каналами

основной проблемой было именно нахождение в игре, так как мы на оффе в чатах мало сидим, не как на пг

firkax написал:
sleep там есть

слип там есть, потому что его поставил реквестирующий челик своими руками, чтобы близам было понятнее что и куда ставить ибо они давно уже забили на починку своих же косяков

firkax написал:
не баг а целенаправленная фича

Вы во многом заблуждаетесь, но сейчас спорить и флудить не буду
может в другой теме скажу что думаю по этому поводу

Резюмирую: в 1.1х при игре на серве (не важно офф или ПГ) баг не может быть пофикшен никакими стандартными средствами. Тему можно закрывать.

0

нет, sleep там есть от близзов а жалоба на то что он выполняется не безусловно всегда, а только в некоторых случаях, а автор хочет чтоб он выполнялся безусловно

в 1.1х при игре на серве (не важно офф или ПГ) баг не может быть пофикшен никакими стандартными средствами
можно сказать другими словами: если что-то изменить в логике этих sleep'ов, то строго называть это 1.1х будет уже нельзя, как и любой другой модифицированный клиент

0

не баг а целенаправленная фича
ну это из того же поля ягода что и дроп мулов походу

баг не может быть пофикшен никакими стандартными средствами
смотри чувак как на самом деле нас обманывают - через автообновление может быть пофикшен точно так же как была сделана новая версия 2.03 на альт клиент, точно также может быть сделана 2.03а, 1.1ха с фиксом бага во всех клиентах, но играть после этого этими клиентами на других сервах кроме ПГ наверняка не получится, но до этого никакого дела ПГ быть не может, никто не мешает установить еще 1 копию игры для игры на других сервах, вот так вот, но раз это "не баг а целенаправленная фича" ака дроп мулов, то страдайте посоны ибо таков ваш удел.

0

блин, фирк опередил меня со своим пояснением, и теперь оно выглядит немного неуместно, он научился читать мои мысли и лепить отмазки раньше чем я начну что-то возникать ))

0

через автообновление может быть пофикшен ..... 1.1ха с фиксом бага во всех клиентах, но играть после этого этими клиентами на других сервах кроме ПГ наверняка не получится
а вот это уже нет (я про автообновление 1.1х не от близзов)
близзовский клиент не примет никакое автообновление, кроме сделанного близзами, он проверяет что на автообновлении есть их цифровая подпись и только потом его устанавливает (собственно все вменяемые автообновления, не только в играх, всегда проверяют что обновление прислано не кем попало а автором программы, иначе это был бы широкий канал для распространения вирусов итд)

0
фавыыав написал:
CPU

kak docpew opiw kak na 114 eto fixit :C

-1