Comments 80
Возьму через полгода когда все починят.
С торрентов и сейчас можно, ибо GOG — безо всяких DRM (кстати, за счет предзаказов они уже покрыли все расходы, что в очередной раз показывает особое отсутствие пользы от всяких Denuvo).
Если бы пользы от Денуво не было бы, то ее никто бы не ставил. Это денег стоит.
Денуво взламывают, через несколько дней после релиза. В итоге пиратка меньше тормозит, чем оригинальная. Точно пользу приносит?
Тот же мортал комбат ломали почти год.
Это может означать отсутствие интереса и/или временнЫх ресурсов у людей с необходимыми знаниями и навыками. В этом и есть выгода Denuvo — если нельзя написать универсальный кряк, то взлом будет отложен во времени. Т.е. скорее всего — если игрушка будет достаточно популярной — взломают всё равно, но позже. И чем позже, тем выгоднее.
Anno 1800 не сломали до сих пор. А скоро уже 2 года будет с момента выхода.
Польза, безусловно, есть. Для менеджера, который предложение вносит.
за то, что сообщение подразумевает не честно купленную?
После покупки, получаешь доступ к торрент-ссылке!
*звук разрываемого шаблона*
Но ведь лаунчер "есть не просит", зато даёт огромную скорость закачки (около 40 мегаБАЙТ в секунду), автообновления с гарантированным сохранением прогреса игры и т.д. Что в нём плохого? Такуя сырую игру ещё много будут обновлять и патчить — и без лаунчера прдётся каждый раз качать и переустанавливать
Нету в бульдозерах никакой SMT. Там просто число блоков работы с плавающей запятой 4, а блоков работы с целыми числами — 8.
В играх, скорее всего, от дополнительных 4 ядер нет профита, из-за чего такой код появился, но в не математических приложениях профит есть.
Да. Вот у меня Sandy Bridge, и я через BIOS вообще отключил HT нахрен, потому что никакой прибавки к скорости от него нет, а в вычислениях, наоборот, производительность проседает.
Ссылочкой на тест не поделитесь? Не верю.
Можете сами проверить, установив минимальные настройки графики с минимальным разрешением и скейлингом 50%, включая и отключая HT/SMT в биос (ограничив количество ядер, если проц не грузится на 100% с вашей видеокартой).
Спасибо. Действительно, интересный эффект. Но как мне кажется, это связано не с вычислительной способностью процессора, а с нюансами передачи команд в видеокарту в DX12.
Всё дело в том, что при обращении к видеокарте CPU ожидает результата в busy wait. DX12 позволяет обращаться к видеокарте из нескольких потоков — как следствие, более количество потоков нужно для эффективной загрузки видеокарты. При этом эти потоки ничего полезного не делает, они только ожидают выполнения команд.
А вот в DX11 такого эффекта наблюдаться не должно. Многопоточность используется для формирования очереди команд, но сами команды отправляются из одного потока.
Там видно, как 2500 ложится в полку.
Ожидающие потоки планировшик вытеснит, они же не на while(true)
ждут?
вместо «4 ядра и 4 потока"
instead of «4-cores 8-threads»
небольшая неточность.
И на одной картинке — 16-тиядерник с загрузкой в 18 потоков, а на другой — 6-тиядерник в 12 (а больше нету) потоков.
При этом в первом случае описанное поведение — желательно.
Да так же как обычго.
Дизассемблировать, найти нужную проверку, придумать как её запатчить, ассемблировать патч и применить его.
Не буду говорить за всех, но лично мне порой очень помогает armconverter — там можно задизасмить кусочек кода, подредактировать его и ассемблировать обратно — имхо, удобнее чем опкоды заучивать.
Хотя порой удобнее как раз в hex' е опкоды менять, бывало и такое (когда попадались dex' ы которые были собраны как-то по особому и не работали после простой разборки-сборки).
А так же мой форк этого проекта XRayExtensions 2.
У меня этот процесс автоматизирован, например, автоматически меняют адреса релокации. Добавляется новые секции.
Вот тут другая технология используется.
github.com/yamashi/PerformanceOverhaulCyberpunk
Пропатчивает дллка после разгрузки, можно использовать если исполняемый файл упакован протектором. А у меня файл должен быть без всяких упаковщиков, протекторов.
О, да. Я как-то давно писал к одной программе расширение таким образом. Была самописная, исходников не было, документации формата данных тоже не было. Некоторые данные были внесены в базу без возможности их редактировать, а мне это надо было позарез. Вот таким образом я выяснил, какие функции за что отвечают и дописал свою библиотечку, которую внедрил в софтинку подобным же образом, как по первой ссылке.
Потом мне показалось этого мало, и я вместо библиотечки решил дописать свой код прямо в исходный exe. Но там места не было достаточно. Добавил свою секцию.
Забавное это развлечение, но, увы, отнимает много времени...
За столько лет ожиданий игры про киберпанк можно было уж и подготовиться...
Очень просто. Дизассемблер в руки и вперед. Точно таким же методом фиксил игры, например, меняя какой нибудь игровой лимит, захардкоженный в приложеньку. Удивление вызывает скорее, что экзешник ничем не запакован и не обфусцирован
Что-то мне подсказывает, что после такого патча производительность в игре только упадёт, особенно для 16-ядерника. С ростом числа потоков возрастают накладные расходы на синхронизацию, закон Амдала также никто не отменял. Также не стоит забывать, что SMT — не бесплатный, это просто разделение ресурсов ядра. Второй поток, работающий на том же ядре, будет существенно замедлять первый поток.
Да и тесты современных игр показывают достижение оптимальной производительности при 6-8 ядрах, а дальнейшее повышение числа ядер для некоторых игр уже приводит к снижению FPS.
Так что я считаю описанное в статье поведение для 16-ядерника желаемым. Судя по графику загрузки процесса, я не вижу, что игра упирается в проц. А вот для 4-6-ядерников возможны варианты.
Не совсем так. Патч даёт возможность задействовать большее число потоков не самой игре, а одной из используемых игрой библиотек, предоставляющей возможности распараллеливания.
А ещё я очень сомневаюсь, что разработчики игр проводят широкомасштабное нагрузочное тестирование для различных процессоров и дополнительно тюнят эти библиотеки.
Да и тесты современных игр показывают достижение оптимальной производительности при 6-8 ядрах
Это какие игры? Думаю, что игры, использующие DX12 или Vulkan, наоборот, не деградируют при увеличении используемых ядер CPU, т.к. само API заточено на асинхронность, в отличие от DX11 (и ниже) или OpenGL
На самом деле: «использует 16 логических ядер из 32» (при том что для игр, логику в которых частенько трудно распараллелить, 16 это довольно-то дофига)
На форуме было предложено решение — изменить несколько байт в EXE-файле игры. Нужно в Hex-редакторе найти строку 75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 и изменить ее на EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08.
Люди, наверное, реально думают, что это какая-то черная магия. А тут всего лишь замена JNZ на JMP (75 => EB). То есть принудительная активация некоего условия.
Первоначально пользователи пробовали заменять строку 75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08 на значения 74 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08.
А это мне видится как кривой патч с самого начала, потому что вместо JNZ делалось JZ. (75 => 74). То есть действительно, инвертируется условие перехода. И маловероятно, что разработчики допустили ошибку, перепутав TRUE с FALSE.
В этом случае на ПК с процессорами AMD станут использоваться все логические ядра центрального процессора, а производительность игры улучшится на 10-20%.
Как-то слишком уж безапелляционно. Да, ядра использоваться начнут. Но далеко не факт, что это даст какой-то выигрыш по производительности. Во-первых, я более чем уверен, что в подавляющем большинстве случаев узкое место — GPU. Так что увеличение пропускной способности и/или отзывчивости CPU хоть на 20%, хоть на 50% ничего не даст. Во-вторых — не нужно забывать, что SMT/HT ядра только в диспетчере задач неотличимы от "настоящих". На деле же заметный выигрыш в производительности они могут дать в довольно ограниченных сценариях и типичная игра в эти сценарии не входит.
У меня вот на 3950X/RTX 3080 при игре на 1440p и около-максимальных настройках графики производительность от данного патча не улучшается. Может даже немного ухудшается. Жаль что в игре нет нормального бенчмарка.
Вообще уже есть github репа в которую потихоньку стекаются все эти фиксы. Патчинг силами комьюнити. github.com/yamashi/PerformanceOverhaulCyberpunk
Интересно что бы было если CD Project выложили исходники к игре?
Cyberpunk 2077 игнорирует многопоточность микропроцессора AMD