20 ms·
DRM calls are sprinkled everywhere inside the code, usually statically linked or even inlined. This is to make it harder for crackers to identify them. Here th
by GuB-42 5y ago
DRM calls are sprinkled everywhere inside the code, usually statically linked or even inlined. This is to make it harder for crackers to identify them.
Here they put some in the zombie kill routine, but I don't think there is anything special about zombie kills. It could have been anything: picked up ammo, loading a map, pass a certain event, on a timer, during a save, all of the above, etc...
I don't have a deep knowledge about the technology involved but from what I've seen modern DRM like Denuvo are based on virtual machines and are very flexible, allowing all sorts of checks at many points. Done well, there is little overhead, but some overzealous publishers do frequent lengthy checks, killing performance.
- SV_BubbleTime 5y ago> Done well, there is little overhead, but some overzealous publishers do frequent lengthy checks, killing performance. I can imagine disaster if someone inlines the wrong function here. Definitely something that shouldn’t make it out the door, but amazing the difference 6 letters could make.
- wallscratch 5y agoWhy can inlining functions cause disasters? Just instruction cache misses, or other things as well?
- unnouinceput 5y agoQuote:"...but some overzealous publishers do frequent lengthy checks..." Since when do publishers have access to source code to do those checks themselves? Developers do that. And yes, I am aware that in this particular case, for RE:Village, the developer and publisher are the same.
- feoren 5y agoI would think it very odd if publishers were not given the source code. If you were a publisher, would you want some small shop to be able to disappear off the face of the Earth, preventing you from ever doing even simple ports and patches?
- dharmab 5y agoThat actually happens a lot. Mass Effect Legendary Edition is missing a DLC because the source code was lost. Many of Square Enix's hit games like the PS1 Final Fantasy games and the PS2 Kingdom Hearts have lost the original source code and the modern ports are either based on PC ports or are rebuilt from the shipped assets.
- speeder 5y agoAlso I have a very strong impression Legend of Mana for PC is... emulated. It has the same slowndowns it used to have on PSX, but somehow, worse, the game runs quite poorly during combat, stuttering when there is any new sprite on the screen. I think they lost the source code, and made an emulator just f or this game, to allow them to shove the new "remastered" assets in (the remastered assets are just AI-processed backgrounds... quite poorly sometimes even, for example in one screen something that is clearly some grass near a fountain on PS1 became a green smudge on PC).
- SahAssar 5y agoNeither of those examples have anything to do with if a publisher was given access to the source. Those seem to be more about those games being developed in a time when source control and backups were handled more loosely within the industry as a whole. And that does not only apply to games, certain parts of MS office do not have source available anymore so MS has done binary patches to fix bugs, pixar almost lost part of a movie but an employee happened to have a offsite copy at their home.
- Negitivefrags 5y agoDepending on the contract, publishers might have the ability to get a copy of the source code, but they certainly are not going to be monkeying around with it. Doing a full build from scratch of a game is a complicated thing. The build systems at a game studios are quite extensive. Even if you were given access to the version control repositories for a game I think it would probably take you quite a long time to be able to successfully export and build everything from scratch.
- 5y ago
- miggol 5y agoI imagine the DRM is contracted out to a company which the publisher uses for more of their games. The DRM guy or gal comes in a couple days around the end of development, imports some libraries, and sprinkles some function calls here and there. There either isn't the knowledge/time/co-operation to optimize it, or the actual devs are told to stay well away from the DRM stuff to avoid messing something up and causing piracy false positives. Not that I'm in the know, but it seems likely that publishers can get code into the binary one way or the other.
- unnouinceput 5y agoThe DRM in this case, Denuvo, is a framework. One that is very finicky to work with and it has a gazzilion of different API's which are variants of same basic thing, but when compiled it goes into different code machine. Also, strictly speaking, is not the programmers that embed Denuvo in the game, is the level designers. They are the one who select where in the game the checks are made. And crackers, until they don't get to that point in game, they have no idea that what's ahead is legit game code or just another Denuvo trap to trigger something (game crash, patch previous cracked portion of game, corrupt saves, etc etc - the possibilities to fuck with the cracker are limited only by imagination). That's why cracking takes time when it comes to Denuvo, because is a tedious step-by-step dissembling boring job.
- sudosysgen 5y agoIf there is little overhead, then the game is cracked easily as the checks are rare and easily found. For the DRM to hold up the checks need to be frequent, hard to pin down and in practice that means in performance critical, complex code that can behave in unexpected ways.