Lỗi activate a key tải assasin creed 2

The bug still exists in version 4-11-4 of Proton and running the beta version of Steam Client of 15th of September.

bumping thread, has anyone come up with a solution? I've tried @jomarocas solution but it doesn't seem to fix it for me. Running elementary os. Odd thing is AC Odyssey, another uplay game works for me, but AC 2 doesn't.

Compatibility Report

  • Name of the game with compatibility issues: Assassin's Creed II
  • Steam AppID of the game: //steamdb.info/app/33230/

System Information

  • GPU: GTX 760
  • Driver/LLVM version: NVIDIA 440.64
  • Kernel version: 5.5.7-zen
  • //gist.github.com/shoober420/1215c40214cf70e1fabb760b5bd2a341
  • Proton version: 5.0-3

Symptoms

Without using the "sed -i 's/legacykeyregistrylocation/legacykeyregistrylocation2/g' ~/.steam/steam/appcache/appinfo.vdf" command in terminal before launching Steam, you will get this error message.

Failed to request product key from Steam, please try again in a few minutes.

VANILLA: steam-33230cdkey.log

Using the "sed -i 's/legacykeyregistrylocation/legacykeyregistrylocation2/g' ~/.steam/steam/appcache/appinfo.vdf" command in terminal before launching Steam will spawn UPlay, which installs, you then create an account and/or log in. Then UPlay launches without recognizing Assassin's Creed II.

TERMINAL COMMAND FIRST: steam-33230first.log

After exiting UPlay and opening up Assassin's Creed II a second time, UPlay will ask you to link your Steam account. I personally don't feel comfortable doing this, so I chose not to do this. You are then greeted by a screen to enter your CD key.

This would be where you would enter the CD key that should display when launching the game, but its bypassed when using that terminal command at launch.

When starting up certain games on Steam, another window will open up showing your CD key. Assassin's Creed II seems to be the only game that has issues with this, and requires a command to be executed in terminal before launching Steam, which doesn't show the CD key screen at all, and just launches the game.

TERMINAL COMMAND SECOND: steam-33230second.log

@shoober420 Doesn't work for me. Same thing displays with or without the command

@Gaming4LifeDE

Do you have Steam set to run at startup? If so, make sure all Steam processes are killed, then execute the command in the terminal, and execute Steam from that same terminal.

Distro: Linux Mint 19.3 Tricia Kernel: 5.3.0-42-generic GPU Driver: 3.0 Mesa 20.0.2 - kisak-mesa PPA GPU: Intel UHD 620 [WHL GT2] CPU:Intel Core i7-8565U @ 1.80GHz PROTON: 5.0-5

Using the "sed -i 's/legacykeyregistrylocation/legacykeyregistrylocation2/g' ~/.steam/steam/appcache/appinfo.vdf" command in terminal before launching Steam was working till 15/03/2020 [ i had 84 hours of play ].

After that the sed trick isn't working anymore. Steam was not running when i launched the script.

Confirming "sed -i 's/legacykeyregistrylocation/legacykeyregistrylocation2/g' ~/.steam/steam/appcache/appinfo.vdf" no longer works for me as well.

So sad, I tested this game on Proton today, I confirm, the workaround above doesn't work. Any other solution ?

So sad, I tested this game on Proton today, I confirm, the workaround above doesn't work. Any other solution ?

only with the command sed before launch steam, will work, i tested in version before to proton 5.0.6 i suppose that this version no break nothing, i pass the game with version 4 you will try with this version

I confirm that I'm pushing the command before launching Steam, same error, not immediately [Steam seems to looking for the key] then it fails.

My config: Distro: Debian GNU/Linux bullseye/sid [64 bits] Kernel: 5.5.0-2-amd64 GPU Driver: NVIDIA 440.82 GPU: NVIDIA GeForce GTX 960 CPU: Intel Core i5-6400 @ 2.70GHz PROTON: 5.0-6 Steam: steam-runtime_0.20200318.2

I pushed same report on ProtonDB.

I've tried some more stuff, like changing the vailidoslist in

\@\Bshowcdkeyonlaunch\@\A\@\@

0 to

\@\Bshowcdkeyonlaunch\@\A\@\@

1, but it seems that steam always overwrites the file on launch or uses a freshly downloaded version if the immutable flag is set.

I've also tried adding the registry entries from a Windows install [including a valid key] to

\@\Bshowcdkeyonlaunch\@\A\@\@

2 without success. See for further details.

Sadly none of this had a positive effect.

I think I found the cause of this Problem.

When installing Assassin's Creed 2 [//steamdb.info/app/33230/] on Windows, it will only install the Windows CD Key DLC [//steamdb.info/app/33361/], but not the Mac CD Key DLC [//steamdb.info/app/33362/]. It isn't even shown as an available DLC on the Windows Steam client.

In contrast, when installing the game on Linux, both CD Key DLCs are installed as well, but the Steam client can only fetch the Windows Key, but also wants to get the Mac key, as

\@\Bshowcdkeyonlaunch\@\A\@\@

3 is set to true for both DLCs [see SteamDB links].

When launching the game on Windows, the Steam client will thus only try to get the Windows DLC Key, but the Linux client is trying to obtain the Windows and the Mac key on launch, which fails.

On Linux requesting the Windows Key with

\@\Bshowcdkeyonlaunch\@\A\@\@

4 works just fine. Requestig the Mac key with

\@\Bshowcdkeyonlaunch\@\A\@\@

5 will fail. Requesting the Mac Key on Windows will fail as well. This is all expected behaviour I guess, as SteamPlay will only work with Windows titles.

So the problem here is that the steam Linux client wants to request all DLC keys when doing

\@\Bshowcdkeyonlaunch\@\A\@\@

6 but would only need the Windows DLC keys, as SteamPlay/Proton does only support running Windows Titles. This is probably a problem with the steam Play configuration, as the Linux client will install the Mac only DLC with the Mac Key but then fails to get the key on startup.

I've also posted this information on and . Hopefully all the research I've done helps the Valve devs in fixing this problem.

Great info, @cverstege. It helped me find a workaround. By running SteamEdit through Wine and changing the Mac DLC to Hidden,it is possible to start the game.

Make a link from

\@\Bshowcdkeyonlaunch\@\A\@\@

7 to

\@\Bshowcdkeyonlaunch\@\A\@\@

8 to edit the Steam for linux appinfo.vdf file.

I have not found any other way to change appinfo.vdf without Steam overwriting it on startup.

@grktavlov thanks for the tips. The tool actuallay just adds

\@\Bshowcdkeyonlaunch\@\A\@\@

9 [taken from vim, I think

\@\Bshowcdkeyonlaunch\@\@\@\@

0 represents a Byte with content 1?] to the DLC line inside

\@\Bshowcdkeyonlaunch\@\A\@\@

  1. To make it simple, we would just need to get this modificaton into a sed command. I'm not good with sed, especially when it comes to binary stuff like here present in the file.

I also needed to install the Crypt32 DLL via protontricks for Uplay to update [stuck at looking for patches loop].

Sidenote: When launching the game steam will crash when trying to fetch the DLC keys to show in the steam overlay. AC2 will still run fine though. AS a workaround just disable the ingame overlay for AC2.

More precisely it seems to edit after the last "entry"

to

...\@\H\@\@\@\H\@steam_edit\@\Bis_hidden\@\A\@\@\@\H\H\H...

I assume that the sequence

\@\Bshowcdkeyonlaunch\@\@\@\@

2 [0x00 0x8 0x8 0x8] means "end of element" and

\@\Bshowcdkeyonlaunch\@\@\@\@

3 adds another "dictionary" to a list. The dictionary entry added in this case is:

Where the

\@\Bshowcdkeyonlaunch\@\@\@\@

4 is 0x00 0x2 and stands for "integer type", next comes the name, and then the four byte value which is 0x00 0x01 0x00 0x00, if the bytes are properly ordered this gives the value 1.

Actually SteamEdit adds more entries as well, some of type

\@\Bshowcdkeyonlaunch\@\@\@\@

5 [0x00 0x01] which is a string type, but they don't matter.

Using this information I came up with an even less invasive edit: I simply changed this from

\@\Bshowcdkeyonlaunch\@\A\@\@

to

\@\Bshowcdkeyonlaunch\@\@\@\@

for the DLC.

SteamEdit does quite a lot of things. The VDF is basically a dictionary of nested dictionaries with the top-level key being the AppId. The structure looks roughly as follows for the macOS DLC:

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

Each scalar key has the format

\@\Bshowcdkeyonlaunch\@\@\@\@

6, so

\@\Bshowcdkeyonlaunch\@\@\@\@

7 looks like:

\x02is_hidden\x00\x00\x01\x00\x00

With \x02 [

\@\Bshowcdkeyonlaunch\@\@\@\@

  1. designating the type

\@\Bshowcdkeyonlaunch\@\@\@\@

9 and

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

0 being the value, i.e., 1. A

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

1 has \x01 [`\A].

Dictionaries have

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

2 with \x00 [

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

3], and furthermore, they don't use a \x00 byte to as termination symbol [being a list] but \x08 [

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

4]. So they have the format

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

5 with

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

6 being \x00, being a

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

2.

So the above looks roughly like:

\x00
  \x00 appinfo \x00
    \x02 appid \x00 \x00\x51\x82\x00 \x00
    \x00 common \x00 ... \08
    \x00 extended\x00
      \x01 developer \x00 \x00
      \02 dlcforappid \x00 \x00\xCE\x81\x00 \x00
      ...
      \x02 visibleonlywhensubscribed \x00 \x00\x01\x00\x00 \x00
    \x08
    \x00 steam_edit \x00
       \x02 is_hidden \x00 \x00\x01\x00\x00 \x00
       \x01 base_name \x00 Assassin's Creed 2 - Mac \x00
       \x01 base_type \x00 DLC \x00
    \x08
  \x08
\x08

Actually, only the

\@\Bshowcdkeyonlaunch\@\@\@\@

7 entry is really needed.

Thanks a lot for your tips guys; I was finally able to get Assassin's Creed II running!

Updating the appinfo.vd file is not that simple because the entries have a checksum. If the checksum is not correct, Steam will simply wipe out the file and start a new one. I wasn't able to figure out how the checksum is calculated, but SteamEdit is able to generate them correctly. So I grabbed SteamEdit's output to generate a very minimal appinfo.vdf with a single entry ["Assassin's Creed 2 - Mac"].

Simply replacing the existing appinfo.vdf with this one does the job - Steam will append new game entries but leave the existing "Assassin's Creed 2 - Mac" entry untouched.

shoober420, MeanderingCode, ljrk0, fabianhjr, smmayank, and chkuendig reacted with thumbs up emoji belgianGeek and saltgen reacted with hooray emoji cverstege, MeanderingCode, BWPanda, fabianhjr, smmayank, and saltgen reacted with heart emoji

All reactions

  • 👍6 reactions
  • 🎉2 reactions
  • ❤️6 reactions

Nice summary, uplay played nicely for me on latest experimental. If only they could fix the client getting confused and trying to request the Mac CDKey!! It would just work! Valve are you listening!?!!

After doing a clean install I've discovered another thing that is causing launch issues, I was getting the can not find uplay issue, and Iooked like the first run stuff just wasn't happening. The reason behind this is that the game needs the Steam common re-distributables installed which the current install doesn't appear to download [I think the dev has to opt in]

If you have installed a game that a dev has opted in the re-distributables are already installed and all works ok..

I've created a script that automates the following, there is a menu now that you just need to select if you want to fix assassins creed 2 or brotherhood

//github.com/smintman/assfix

  1. Downloads either the assasasins creed 2/brotherhood hacked vdf from github and copies in to place
  2. Opens up steam and downloads to common re-distributables depot
  3. If brotherhood is selected, it will download the updated uplay installed and copy into place so that when the game is run it will it use that instead. I've only gone this for brotherhood because on first run it tries to update uplay but throws an error [it actually has updated and on second run all is fine] but I thought that I will add in the updated installer to avoid the error. Assassins creed 2's version of uplay updates itself just fine.

None of these work arounds would be needed if Ubisoft/Valve did the required work, hopefully someone is on the case.. somewhere... maybe?

Apologies for bumping the thread.

Tried the method put forward by @ranplayer, which didn't work. Another forum discussing this topic pointed out that the error is sometimes produced due to Steam not installing the "Steam Common Redistributables". Under the presumption that my Steam install might have some problems, I performed a fresh re-install of Steam. After that, I installed Portal 2 - a Valve game - hoping it would install the redistributables with it, which it did.

Then I repeated the method, and it worked.

I think this affects lots of games. Especially when on fresh install of steam. Was so confused when first started trying to get games working as to why instructions that others had used were not working. I think valve need to be a bit more proactive with devs helping them get the right set up to work on Linux. As I guess some just don’t know.

//github.com/begin-theadventure/acfix I created another way to apply the fix, which I think is better because you can add it to multiple ACs at once - practically unlike with .vdf - theoretically well unless you wanna share your entire library... +I added fixes for Unity and Brotherhood Standard Edition. Not needed anymore.

The issue might be fixed, I updated my client [I'm on beta channel] and deleted the prefix and deleted the appcache.vdf [to clear any previous fixes] and I managed to start, update and play assassins creed 2 deluxe and brotherhood! Also can request CD key without error!

Can others try to check the issue is resolved for them!!

Maybe worth mentioning that I could not start a new game when Ubisoft Connect launcher was in offline mode

I forgot to reply but it does indeed work now.

So, right now we have only this problems:

  • Game crash on Alt+Tab. Fixed by using virtual desktop mode in wine, but with this, mouse cursor always captured by game.
  • Ridiculously low LOD distance and low shadow resolution. On windows it can be fixed via cheatengine hacks.

Maybe anyone find a way?

For alt+tab, try using gamescope. For the LOD, see if you can change that in the game's config files.

For alt+tab, try using gamescope. For the LOD, see if you can change that in the game's config files.

Gamescope sounds like ultimate solution to solve this kind of problems. It's still not working with NVIDIA, but it will soon. Anyway, right now I using wine virtual desktop + MouseWarpOverride=disable + DS4, it works.

About LODs, game doesn't allow to change that via config file.

Well, for Linux you can use //github.com/scanmem/scanmem as a replacement for Cheat Engine. It's the same thing, a memory editor. You will need to find the appropriate addresses and make the needed changes.

Yes, I tried scanmem via GameConqueror and I can't find any addresses with constant 256, 512, 1024 or 2048 values. Also, addresses from "AC2 Visual Fixup Mod by

Bucket5" not working, and as AC2VFM.EXE itself.

Gamescope sounds like ultimate solution to solve this kind of problems. It's still not working with NVIDIA, but it will soon. Anyway, right now I using wine virtual desktop + MouseWarpOverride=disable + DS4, it works. About LODs, game doesn't allow to change that via config file.

I also noticed a problem with alt+tab and read on ProtonDB [RADA77435] about virtual desktop mode, I enabled it by: 1] opening

{ "appinfo": {

"appid": 33362,
"common": { },
"extended": {
  "developer": "...",
  "dlcforappid": "...",
  "...": "...",
  "visibleonlywhensubscribed": 1
},
"steam_edit": {
   "is_hidden": 1,
   "base_name": "Assassin's Creed 2 - Mac",
   "base_type": "DLC"
}
} }

9 in the terminal 2] running

\x02is_hidden\x00\x00\x01\x00\x00

0 3] checking

\x02is_hidden\x00\x00\x01\x00\x00

1 under

\x02is_hidden\x00\x00\x01\x00\x00

2 typing native resolution under

\x02is_hidden\x00\x00\x01\x00\x00

3 clicking

\x02is_hidden\x00\x00\x01\x00\x00

4 and

\x02is_hidden\x00\x00\x01\x00\x00

5 However the mouse didn't work outside of it and here I read your comment mentioning MouseWarpOverride. I did as before but instead ran:

\x02is_hidden\x00\x00\x01\x00\x00

6 and now everything's fine. Thanks! //Edit: After tabbing out of the game/virtual desktop it still captures mouse movements and clicks so my solution is to stop the game and continue via e.g. system monitor.

@begin-theadventure glad to hear. But, next time try to use protontricks, it allows you to select game in GUI:

Screenshot

BTW, I completed my AC2 walkthrough like this. It's still awesome game.

Unfortunately, it appears this game's controller support has been broken as of Proton 8.0. It worked correctly in Proton 7.x.

Playing on the Steam Deck, external controllers also do not work, and keyboard emulation is not an option because of the camera.

steam-33230.log

Hello @Sterophonick, please copy your system information from Steam [

\x02is_hidden\x00\x00\x01\x00\x00

7 ->

\x02is_hidden\x00\x00\x01\x00\x00

8 ->

\x02is_hidden\x00\x00\x01\x00\x00

  1. and put it in a gist, then include a link to the gist in this issue report.

Unfortunately, it appears this game's controller support has been broken as of Proton 8.0. It worked correctly in Proton 7.x.

Playing on the Steam Deck, external controllers also do not work, and keyboard emulation is not an option because of the camera.

steam-33230.log

Caused by weird prefix creation after using

\x00
  \x00 appinfo \x00
    \x02 appid \x00 \x00\x51\x82\x00 \x00
    \x00 common \x00 ... \08
    \x00 extended\x00
      \x01 developer \x00 \x00
      \02 dlcforappid \x00 \x00\xCE\x81\x00 \x00
      ...
      \x02 visibleonlywhensubscribed \x00 \x00\x01\x00\x00 \x00
    \x08
    \x00 steam_edit \x00
       \x02 is_hidden \x00 \x00\x01\x00\x00 \x00
       \x01 base_name \x00 Assassin's Creed 2 - Mac \x00
       \x01 base_type \x00 DLC \x00
    \x08
  \x08
\x08

0 on the Steam Deck. Fixed with 576a839.

@Sterophonick I'm looking into this, and unable to reproduce the failure you are seeing. First - did you use the "Delete Proton files" option? Several folks used this when upgrading to 8.0-1, and unfortunately there is a SteamOS bug that was causing controllers to break. We have worked around this temporarily with the 8.0-1d release which is now live. If this is the case, you should be able to repair the problem by using "Delete Proton files" again and then launching on 8.0-1d again. If this does not work and you did use "Delete Proton files", I think it is worthwhile for you to try manually deleting the prefix before doing any other investigation.

These questions are for follow up in the event that I was wrong about my hunch regarding Delete Proton files. Please disregard if the instructions above fix your error [but it would be great if you let me know] :]

I'm assuming that controllers do not work at all, even on the menus for you starting with 8.0-1?

What kind of controller are you using? Also, could you go into the controller settings and check the name of the controller layout[s] for each controller [including the built-in steam controller]?

Also, if you haven't already done this, could you switch the proton version back to 7.0-6 to make sure the controllers are still working for you there?

Replying to

Swapping back to 7.0 actually fixed it. Proton worked around the SteamOS bug with that commit, so

\x00
  \x00 appinfo \x00
    \x02 appid \x00 \x00\x51\x82\x00 \x00
    \x00 common \x00 ... \08
    \x00 extended\x00
      \x01 developer \x00 \x00
      \02 dlcforappid \x00 \x00\xCE\x81\x00 \x00
      ...
      \x02 visibleonlywhensubscribed \x00 \x00\x01\x00\x00 \x00
    \x08
    \x00 steam_edit \x00
       \x02 is_hidden \x00 \x00\x01\x00\x00 \x00
       \x01 base_name \x00 Assassin's Creed 2 - Mac \x00
       \x01 base_type \x00 DLC \x00
    \x08
  \x08
\x08

0 now works correctly. The problem affected other games, in more ways than just XInput.

Everything is all fine now.

Hello @Sterophonick, unfortunately, that response is ambiguous. I could mean that you switched to Proton 7.0-6 and called it good enough, or regenerated the game's wineprefix with Proton 7.0-6 and switched back to Proton 8.0-1 and called it good enough.

Please make it explicitly clear if you tested having Proton 8.0-1d regenerate the game's wineprefix and then checked the game's behavior so that we can drop the regression label.

Hello @Sterophonick, unfortunately, that response is ambiguous. I could mean that you switched to Proton 7.0-6 and called it good enough, or regenerated the game's wineprefix with Proton 7.0-6 and switched back to Proton 8.0-1 and called it good enough. Please make it explicitly clear if you tested having Proton 8.0-1d regenerate the game's wineprefix and then checked the game's behavior so that we can drop the regression label.

Yes, I have tested having Proton 8.0-1d regenerate the prefix.

After the most recent Ubisoft update, it doesn't work via any Proton version.

However, not even Proton Experimental works either. It just boots, stays trying to boot there for a bit and says it's in-game, and then closes.

Here are the log files of opening Steam via console.

fsync: up and running.
wine: RLIMIT_NICE is 

Chủ Đề