Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
https://www.tomshardware.com/video-games/pc-gaming/drm-developer-hacks-denuvo-drm-after-six-months-of-detective-work-and-2000-hooks-allows-running-hogwarts-legacy-on-other-pcs
That's an absurd conclusion. If the game drops performance "once every FEW seconds" it means that people will notice the game to slow down VERY often, so how do you reach the conclusion that dropping frame rate "once every few seconds" is not going to kill performance... I see this as proof of the contrary.
I could understand if he told "once per 5 minutes", not a few seconds...
It all comes down to how much it impacts with each call. If the call is impacting, the data is huge, once each two seconds you may notice a frame rate drop.
A frame drop each 10 seconds of gameplay for example would prove that peoples are right.
Nobody actually said in the article that the call is "non impacting", just that it occurs each few seconds. You don't need a constant drop to be impactful.
What slows down a Denuvo game is the massive obfuscation of the executable code. They scramble the original code and insert a ton of code that mostly does nothing but still has to run correctly or live values being worked with will be wrong and the game will likely crash, which causes single-stepping the game in a debugger to be an absolute nightmare, and that's why it's hard for people to examine or mess with the drm.
The problem here is that you typically have an executable that blows up from a few dozen megabytes, or maybe a hundred, to a gigabyte or more. I don't think there are any CPUs that have a gigabyte of instruction cache. So you're constantly going to be missing the cache at runtime, and cache fetching can be hundreds of times slower than reading from an already-cached bit of ram. You won't miss the cache everywhere, and a tight loop will still probably be tight and fit in the cache, so it'll get loaded into the cache and run from there decently, but tons of conditional code that runs sometimes or intermittently/unpredictably during a frame will constantly fall out of cache as all the extra fluff code passes through it.
Speaking of conditional code, I believe some of the padding code contains conditional branches, which bring with them the risk of branch misprediction, where you can end up fetching the wrong code into the instruction cache and speculatively executing it in the super-deep pipelines of modern CPUs. If you guess wrong, you have to flush the entire pipeline, possibly fetch the ram into the cache, and then execute the destination code from scratch, which because the pipelines are super-deep these days, causes a significant stall, like opening a tap at the end of a long run of pipe when there's no water already in it.
So no, this guy's experiment does not show that Denuvo doesn't slow games down. It might show that their API calls to check authorization aren't so large that he could tell much of a difference, but that would only be a drop in the bucket of Denuvo's performance loss if the problems I list above are indeed significant.
And I think we all know of games that performed much better, especially on low-end PCs, after Denuvo was removed. I've seen it with my own eyes a couple of times when I bought titles without realizing they had it. Fast-forward however long, Denuvo is removed and suddenly performance is both 20-30% better and much less erratic.
[Background: I'm a retired professional industry gamedev who focused on low-level code for about half of my career and then was the chief architect of an in-house multi-platform engine that shipped dozens of titles for the big publishers you all know. I do know what I speak of. I've fought stuff like pipeline stalls and cache-miss problems for probably entire years of my life. They matter a lot in a game where a ton of data is being processed by a lot of code.]
But the Denuvo crack "group" seem pretty dead to me.
So who should we believe the person that literally went through all that work to remove it or you? Why would he go public about how he did it and then defend Denuvo? Did you all just stop to think that game developers are just not that great at their jobs or are given unrealistic deadlines to hit? Horizon Forbidden West came out and looks miles better than this game and works great even on lower end hardware.
2) You say it's "a complete hoax", which is extremely strong wording, but you provide no extraordinary evidence to back up your extraordinary claim. A "hoax" is something someone creates in order to deliberately mislead people. This is not even remotely a hoax. It is a collectively-observed pattern seen by thousands of people and frequently confirmed when Denuvo is removed from a title by the publisher.
3) Also, you say it's down to developer skills. If the middleware isn't safe to use in the hands of a semi-skilled developer, it's still the middleware's fault.
I obviously have no way of knowing, but it seems to me that you are likely to be a literal shill/astroturfer for Denuvo. I've worked in the industry, I know people do these things regularly. I was asked to do it myself at one job. I didn't, because I like my soul the way it is. If this is not what you're doing, then you're simply clueless and undeservedly confident about your claims. Are you even an adult? Have you worked in the industry or at least something somewhat adjacent? You are way too sure of your claims and way too forceful about them just to be some regular rando.