PlayGround.ru
Ropnet
, Quake трейлер, читы для Hitman: Контракты, Гарри Поттер и Дары Смерти. Часть первая видео


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

фавыыав   6 октября 2017 в 20:52

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)
us.battle.net/forums/en/bnet/topic/20743464511

Dobermn   6 октября 2017 в 21:07

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


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

фавыыав   6 октября 2017 в 21:21

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


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

Dobermn   6 октября 2017 в 21:24

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

фавыыав   6 октября 2017 в 21:43

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

Obsessed   6 октября 2017 в 21:44

что за "сри баг"?

Dobermn   6 октября 2017 в 21:46

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

фавыыав   6 октября 2017 в 21:50

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

Obsessed
CPU

Dobermn   6 октября 2017 в 22:25

фавыыав
процессора жалко? электричество дорогое?

PAK-PYK   6 октября 2017 в 23:08

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


kak docpew opiw kak na 114 eto fixit :C

T6000   7 октября 2017 в 02:02

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

фавыыав   7 октября 2017 в 22:04

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

фавыыав   10 октября 2017 в 02:12

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

firkax   10 октября 2017 в 09:34

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

фавыыав   13 октября 2017 в 20:57

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

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


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

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


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

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


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

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

firkax   13 октября 2017 в 21:23

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

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

Archon Guard   13 октября 2017 в 21:25

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

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

Archon Guard   13 октября 2017 в 21:28

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

firkax   13 октября 2017 в 21:36

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