Steam Deck

Steam Deck

Falkentyne Nov 4, 2024 @ 7:44pm
Persona 5 Royal, Denuvo, offline mode and token (activation) expiring instantly?
I seem to have discovered an issue with the current steamOS version and Persona 5 Royal, although I have no idea if it's a bug with SteamOS, the steam client itself, or with the proton version with regards to "Denuvo" and the "authorization token" (which is required for offline mode).

First:

Street Fighter 6 also uses Denuvo, however the same bug *DOES NOT* affect this game. P5R is the only other denuvo game I have installed on the deck.

What I've found:

Playing P5R, then going into "Offline Mode", turning OFF the deck and turning it back ON, seems to count as a NEW machine install. This is abnormal and should not happen.

(note: this might also affect online mode as well, but there's no way to know as it just would reauthorize (up to 5 times in 24 hours then you're done!--see below)).

Occasionally, this happens with Street fighter 6, but usually another run (or 2) when online manages to fix this for at least 1 week.

If you get the "Steam is in offline mode and must be online for the first run", going back online counts as a *new* install and will eat up one of the 5 allowed activations in 24 hours.

If this happens 5 times, you're banned for 24 hours.

2. I so far managed to get "offline mode", followed by turning OFF the steam deck and turning it back on, to only keep the token for at most *ONE* complete power cycle (or maybe 10 minutes power off at most). But if I wait another 10 minutes with the deck powered off and turn it on again, the token has expired :(

3. If the deck is kept in 'suspend' mode after you manage to get the 'offline' token working and able to survive a full power reset once, you can keep it in suspend mode and play multiple times over many hours, and the token will stay available. But if you power off the deck again, the token is lost.

I have NOT been able to reproduce this problem in Street Fighter 6.

What I have **NOT** discovered:

Does keeping the deck in online mode, and powering it off 7 + times (let's say, in 15 minute intervals) in 24 hours count as a machine install and then you get locked out for a day? I have NOT been able to verify or test this (for rather obvious reasons--this is time consuming and then a day is gone if you get locked out and you're waiting another day).

What I *HAVE* discovered:
This affects *BOTH* the LCD Steam Deck and the OLED steam deck, using the newest steam client and both 3.6.19 and 3.6.20 OS. Both were using full system wipes and complete clean installs (OLED from a 2 week new hardware purchase, LCD was wiped and installed with recovery image).

I did *NOT* have this problem with the september 2023 build of the 3.5 beta OS on the LCD deck (I have not reverted to it to test it again now, the OLED deck cannot use this build).

I cannot post the manual install instructions for this for previous OS builds as this sub will flag the link as a 'banned' word, for some reason.

Has anyone else discovered any problems with the Denuvo/auth token on Persona 5 Royal (specifically) and offline mode, or any other games like Metaphor, P3R, Strikers or anything else?
< >
Showing 1-13 of 13 comments
Falkentyne Nov 5, 2024 @ 1:58am 
Ok no responses from anyone.

Anyway I just verified that the denuvo token simply 'vanishes' from the steam deck almost every single session, requiring re-authorization no matter what--even if you're always online, and this reauthorization eats an install token. "Sometimes" the token lasts for a single power off and on, but most of the time it's completely gone. So if you turn off and on the steam deck more than 5-7 times in 24 hours (depending on if the token actually survived a power off or not), you get locked out. No idea if this is a bug in the september patch for the game or in Steam OS (as I simply didn't even run the game around that time, except to patch it).
Issue does NOT happen in Street Fighter 6 at all.
Tycho Nov 5, 2024 @ 1:09pm 
Yep. Same on my end for Persona 5. Go offline mode, shut down for like 15 minutes, restart and bam. Need to go back online.

Steam OS 3.6.20. LCD model.
Last edited by Tycho; Nov 5, 2024 @ 1:10pm
Falkentyne Nov 5, 2024 @ 2:47pm 
I submitted a report to Valve and also opened a ticket with Sega.
I think I know what's going on.
Take a look at this.

This is Street Fighter 6's denuvo token (took me a long time to find it).

https://imgur.com/a/jl1oPhQ

Here is Persona 5's denuvo token location.

https://imgur.com/a/OU6zDXn

Notice something?
there's NOTHING THERE.

I don't know what's going on. I don't know if the denuvo token is even being downloaded and stored there, or if it's being deleted (either by the OS or by denuvo itself) when trying to run the game. I won't be able to find out until after my 24 hour punishment is expired and I can run the game and try to find the file, maybe by running it in desktop mode and then alt tabbing out of the game and seeing if i can find the 'new' token, or running it in game mode, exiting the game and going to desktop mode (without rebooting the deck) and see if the token is there. If I can find it, maybe i can copy it somewhere.

I saw an old post about Tekken 7 and someone saying that denuvo was deleting the old token as soon as the game was launched or something (This at least helped me 'find' where the token was, but I had to use street fighter 6 since offline mode was working on it fine).

https://github.com/ValveSoftware/Proton/issues/3267
VB Driver Nov 5, 2024 @ 8:42pm 
Waiting for usual suspects to accuse you of "wAnTIng tO pIRatE tHa gAEm".
Falkentyne Nov 5, 2024 @ 9:56pm 
Originally posted by VB Driver:
Waiting for usual suspects to accuse you of "wAnTIng tO pIRatE tHa gAEm".

Pretty hard to do that when my steam profile is public and you can clearly see I *own* the game :)

Still waiting for Sega to answer my ticket (as well as Steam Support).
I suspect MANY people are affected by this but simply don't realize it, because you would have to boot up the game each time you power off and on the deck, more than 5-6 times a day in order to trigger this (assuming that the denuvo token is lost each time).

I took some pictures to show the problem here.

Here is the Street Fighter 6 denuvo token, alive and well. Offline mode works fine, doesn't need reauthorization (yet).

https://i.imgur.com/mK9Pwpw.jpg

Here is Persona 5 Royal's folder. Notice the denuvo token is completely absent? (which is why the game is trying to reauthorize again). The question is *why* is it absent and what is deleting it, and is it even being saved correctly after authorization happens (during that entire boot session?).

https://i.imgur.com/bDygj8F.jpg
Falkentyne Nov 6, 2024 @ 4:34am 
Ok I managed to get reauthorized, and it seems something even stranger is going on.

I found first, that the denuvo token is stored in *two* locations, not one.

One is the program files x86 folder as above.

The other is in an immediate users folder also starting from dosdevices.

users/steamuser/appdata/local/steam/userdata/your_steam_user_id#/1687950

note that "application data" routes to appdata, and steamuser is precisely "steamuser".

Found out something else after this.

Denuvo is *Indeed* deleting the token. At both locations.

Before even running the game to see if it was being deleted, I made a backup copy of the token and stored it outside the persona ID# folder.

I then went into offline mode, turned off the deck, rebooted, tried to run the game and got the expected "Steam is in offline mode, for first run go online...."

Then I went into desktop mode and saw that the tokens were gone. Deleted.

So I restored both tokens and rebooted.

So I decided to try something.

After being successfully authorized and closing the game, I set both files (they are identical files) to read only (or "view only" with right mouse click in the dolphin browser).

I then relaunched the game, worked fine.

I then set steam to offline mode, worked fine.

Then I powered off the deck and powered it back on.

Launched the game. What?

This time, the game just exited back to GUI (or desktop).

No error appeared, nothing. It just exited.

So I went into online mode and ran the game again.

Same thing. No error. It just exited. I checked and the two denuvo tokens were still there, and the "modified" date or created time was still from me manually copying them, so no new token was downloaded from the protection server. But it wasn't even launching in online mode.

So I rebooted the deck again, ran the game....and it ran?

Booted to desktop mode and the files were there, and were unmodified, so no authorization was used (apparently, then again who knows, but the token at least was working).

So then I decided to go back offline, rebooted the deck, ran the game and yep. It didn't launch. It just exited.

Turned off the deck, turned it on again (without exiting offline mode), ran the game....and sure enough, it launched just fine.

This time it survived two power offs.

Ok so apparently this is what is going on.

It seems the machine ID is changing in some way after turning off the deck, maybe cycling between two of them (randomly? idk). If Denuvo sees any change, when you are in offline mode, it deletes the existing token and says that you are in offline mode and need to go online or first run.

If it can NOT delete the token (access denied), it just crashes. (then you save your "install" and you can try to reboot again).

If you're online and denuvo doesn't like the machine ID it got, it deletes the token and asks for a new authorization. (there goes one of your installs). If it can't delete the token (read only), it crashes again (whether or not an install is lost when online, I have no idea, but I'm guessing that it exits before it phones home).

If you reboot the deck again, most likely the machine type will "change back" and it will launch again.

I have no idea why this seems to be specific to persona 5 royal and not street fighter 6.

So basically, you need to set the tokens in both locations to "view only" to prevent denuvo from deleting them, then reboot until denuvo accepts the machine type for that boot so you can run the game.

Proton bug? SteamOS? I have no idea. But street fighter 6 doesn't seem to be as problematic, although I have run into issues in the past where SF6 needed several authorizations before accepting the token long term, but nothing like what I'm seeing like this with P5R.
Falkentyne Nov 6, 2024 @ 9:01am 
I may wind up deleting the token (Since I have it backed up) when I get a "game does not launch" boot, (which means the ID for the machine is somehow different), go online, and get a new token, and then compare the two tokens, to see if the filename of the token has changed or only the data in the text file (but keeping the same file name). If the filename itself is different, perhaps both files, after set to read only would get used by denuvo depending on what the ID is on that boot. If the file name remains the same, obviously that won't work. (and still no idea if the second file would even work anymore if It reauthorized and I kept the first file backed up and restored it (with read only set on both).
Tycho Nov 6, 2024 @ 10:49am 
I am not the most savy with linux, but could you create a link between the two folders with the denuvo token so it shares the file?
Falkentyne Nov 6, 2024 @ 12:16pm 
Hi Tycho, no that won't work at all. I also found out that my original guess was correct---but in the wrong way.

The machine ID checksum for denuvo is INDEED changing on every steam deck restart. It seems to change between two or three different ID's and it's just luck if it uses the one that matches the token on that boot.

Denuvo first installs into either the program files x86 folder or the users folder. The "steam" subfolder will not exist until denuvo decides to use that folder then it stores the authorization at the end. It seems to be pure random which folder it uses.

I did a fresh install of proton 7.0.6, and for the first two restarts, it used the program files(x86) folder. It also kept the same checksum, soit didnt try to delete the denuvo file (he file is a bunch of numbers with a very long encrpyption key inside), and offline mode worked on the first restart.

On the third restart, (i set the file as read only to avoid losing auth's), I got the "Steam is in offline mode" popup. So I enabled online mode, and sure enough, denuvo created a folder in the SECOND location and stored a token there. The tokens had the same filename but were different. Of course the game launched at this point.

I then set it to offline mode, rebooted and the game launched again.
I rebooted again, but this time the game just exited immediately.---the hardware ID didn't match checksum denuvo decided to use to access the token. (no idea which folder it tried to use).

If for any reason (whether you are online or offline), the deck's hash ID doesn't match what denuvo stored in the token, it will delete the token (EVEN IN OFFLINE MODE!) and then try to acquire another when online, or try to get a new one immediaely if online, unless you ran out of credits. Setting the token to "View only" prevents the deletion and the phoning home, but then you have to reboot until the ID matches again.

Rebooted AGAIN, game launched fine (offline mode).
So it seems to be changing ID's between several possible ones each boot, why? No idea.
I had both tokens marked as read only, so i wouldn't get any deletions or lose activations.

Verified the same thing on both an LCD steam deck using proton 7.0.3, and the OLED using 9.0.3.
Last edited by Falkentyne; Nov 6, 2024 @ 12:19pm
TutoredSpider12 Nov 7, 2024 @ 8:00am 
I think this might be a bug with the kernel version shipped in 3.6.19.
Falkentyne Nov 7, 2024 @ 8:38am 
Yeah, not sure. But the question is why isn't street fighter 6 affected by this?

I also noticed that street fighter 6 only creates ONE denuvo token (that I can find), and that's in the program ID (number) folder/dosdevices/c:/program files(x86)/steam, etc, at the end of the folder with the game ID number, while Persona 5 creates *two* tokens in either program files (x86)/steam or users/steam. Perhaps SF6 has a second token somewhere, but I haven't found it yet. I deleted the denuvo token for SF6, went into offline mode, got the obvious error, reauthorized myself and then set the new token to "view only" and worked great. I'll see if I can check (maybe by deleting all proton files) to see if SF6 creates one or two tokens.
I do see other folders for SF6 that are being used, but there is no token in them (so far).

Anyway, I'll try to find the github steamOS bug folder and report this there for P5R.
TutoredSpider12 Nov 7, 2024 @ 9:20am 
I wonder if SF6 uses a different version of Denuvo?
Falkentyne Nov 7, 2024 @ 12:33pm 
Originally posted by TutoredSpider12:
I wonder if SF6 uses a different version of Denuvo?

I had a long ticket filed with steam support.
I was first, able to verify, that in on my windows PC, the P5R denuvo token is only stored in ONE location, and that's directly in the userdata in the folder for the game ID, in the Steam folder. it is NOT stored in program files, users or anywhere on the windows c: drive (c:\program files or c:\users, unless that is also where your steam folder is specifically), which is rather obvious, since on linux, this game uses proton.

But on the deck, it uses one of two locations, and once both locations are "created", both files must exist or the game won't launch (offline mode will tell you to go online), but apparently the machine type is different in each one.

My original guess, two days ago, was that one folder is used by Game Mode and the other by Desktop Mode, but Street Fighter 6 does not do this, so that is pretty much out, right? I also copied, on a "reboot" that made the game launch, the token in program files(x86) and moved it to the users folder (this file was backed up elsewhere by me first!), and sure enough, the game exited (file was read only), because the hardware ID didnt match what denuvo wanted. When I copied the original file in that folder back in, the game launched fine.

===============================================

Kevin, (or jack), can you two do me a big favor and forward this message to the OS development team?
I believe this may be a bug in the current OS kernel, which would require their involvement to fix.

I Just checked my windows PC.
I searched both the C: (windows) drive) and my D: drive. The D: drive is dedicated only to Steam games.
The persona 5 royal token is ONLY stored at *one* location in a windows PC.

You can see that it is in the steam main folder, steam/userdata/myuserID/1687950.
The token is here. You can also see a subfolder "ac".

This folder exists on Linux (Steam Deck) of course, but the token is NOT stored here, because this game uses proton.

The problem is, on linux (steam deck specifically), the token is stored in *TWO* locations, and the token that is used seems to change from boot to boot. I don't believe this is proper behavior.

As mentioned above: the first token is stored in steam's "compatdata" , dosdevices/c:/program files(x86)/steam/
and the second token is stored in

"compatdata" -->dosdevices/C:/users/steamuser/appdata/local/steam/userdata/6252747/1687950

These folders are created and chosen by the game itself. On my system, when the game was first launched (new install) the first time, it stored the denuvo token in program files(x86)/Steam/userdata/6252747/1687950

When I rebooted after this install, it used the exact same folder next reboot and did not create a second token elsewhere.

However on the next reboot, it then tried to create a *new* token in users/steamuser rather than using the one in program files(x86). Obviously, being in "offline mode" at this exact time would give you the "First time run--go online" error.

That means something changed in the OS itself (the system) to make persona 5 want to use users/steam/userdata rather than program files(x86)/steam/userdata.

I don't anything about linux or proton, but this has to be related to the OS side. Obviously denuvo would see a completely new "machine" if it were trying to use users/steam/userdata instead of program files(x86)/steam/userdata.

Then later (more reboots), it tries to use the original program files location, hardware ID "may" have changed again, which means denuvo (if you are online AND if the token is not read only!) would delete the existing token and try to re-download it. You can see from the picture attached (my windows PC) that the token has the same file name, so no wonder it's deleted. Setting the token to read only interferes with deletion so denuvo fails and aborts and does not call "home".

It seems that on Steam Deck, the game "Street Fighter 6" is only using the program files(x86) location and not two locations (at least I haven't managed (yet) to make it do that).

Please try to forward this to the dev team. This may be a genuine bug that has to be fixed in the kernel. It's also possible that street fighter 6 is using a different denuvo version than P5R, and the version in P5R triggers something in Linux (Steam Deck) that it does not do in windows.
Last edited by Falkentyne; Nov 7, 2024 @ 12:45pm
< >
Showing 1-13 of 13 comments
Per page: 1530 50

Date Posted: Nov 4, 2024 @ 7:44pm
Posts: 13