PaulCombal / SamRewritten

Steam Achievement Manager For Linux. Rewritten in C++.
GNU General Public License v3.0
341 stars 32 forks source link

Game doesn't relock achievements #4

Closed LeLobster closed 4 years ago

LeLobster commented 5 years ago

All seems fine but after locking via SAM the regular Steam achievement popups show in the bottom right corner of the screen (like when you unlock them in-game) and they remain unlocked.

DieHard: to relock
Hidey-Hole: to relock
Saving stats and achievements.
Relocking DieHard
Relocking Hidey-Hole
I'm the child, and I received SIGUSR1, which means I must retrieve achievements and tell them to my parent through a pipe.
WARNING: Achievement list given may already have been initialized

The game is Capsized
https://store.steampowered.com/app/95300/Capsized/

Haven't had any trouble with any other games besides this one and console output is the same so no idea why this game is giving trouble.

PaulCombal commented 5 years ago

Yeah I half-assed finished the job, so the GUI changes are only made when you exit the game. Do they still show up as unlocked on the Steam Website?

LeLobster commented 5 years ago

Well for only having half-assed the job I'd say it works rather well. I've already relocked a bunch of achievements without problems (except when selecting too many at the same time, then the program hangs. But two at the time is fine)

Both on Steam web and the client the achievements for that game stay unlocked. I use the exact same method of re-locking them as with the other games I did.
Absolutely no cue why just this 1 game has issues.

I also tried just re-locking each achievement of that game by itself instead of together but it gives the same result.

PaulCombal commented 5 years ago

Well I know some achievements are managed server-side, so I'll have to check if this is the case. I don't know when I'll have time to do this though, but I'll get back to you when I will have time.

LeLobster commented 5 years ago

Yeah, If you got better things to do don't worry about it too much. Just wanted to let you know that there is a game (probably more than 1 if your reason is correct) for which SAM doesn't work (although I haven't tested unlocking achievements). But it seems you already have an idea about the reason why.

edit> also if it's steam server side then there's not much you do do, right?

wgpierce commented 5 years ago

I just fixed some race conditions and bad behavior in the code. These problems would cause inconsistent behavior like sometimes not unlocking an achievement or hanging the GUI window. These changes make it more more robust so you can unlock multiple achievements at once and should take care of the issues you were seeing, unless it's a server-side achievement.

also if it's steam server side then there's not much you do do, right?

Yeah AFAIK, not much can be done for that.

Can you try it out and see if the problems persist?

wgpierce commented 5 years ago

Paul, I just created the branch separate_windows for separating the games and achievement windows. This solves all issues with the parent-child interactions and this issue. If all is good, I'll clean it up and merge into master. Please take a look!

PaulCombal commented 5 years ago

The code is a bit messy, I would clean up a bit before merging anywhere. Other than that it seems to work alright! It would be awesome if we could do any further work on the beta branch to implement and finish everything before the next merge

wgpierce commented 5 years ago

Yes it definitely isn't clean, I wanted a proof of concept. Given the other email, I'll keep and clean up the parent-child communication rather than rip it out.

On Tue, Jul 16, 2019 at 5:35 AM PaulCombal notifications@github.com wrote:

The code is a bit messy, I would clean up a bit before merging anywhere. Other than that it seems to work alright! It would be awesome if we could do any further work on the beta branch to implement and finish everything before the next merge

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/PaulCombal/SamRewritten/issues/4?email_source=notifications&email_token=ACKWL5V7ZMSHQGZXI4R5QN3P7W6A3A5CNFSM4G4WVW52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2AWPCY#issuecomment-511797131, or mute the thread https://github.com/notifications/unsubscribe-auth/ACKWL5XJGO2INNRHBZQAYUDP7W6A3ANCNFSM4G4WVW5Q .

telans commented 5 years ago

It appears this also doesn't work for Arma 3.

Setting breakpad minidump AppID = 107410 Steam_SetMinidumpSteamID: Caching Steam ID: *** [API loaded no] Ach3DENArsenal: to relock Saving stats and achievements. Relocking Ach3DENArsenal Relocked achievement Ach3DENArsenal Child is updating parent

Logs indicate that the achievement should be relocked? It definitely isn't though.

wgpierce commented 5 years ago

We're working on a new achievement unlocking implementation that will be cleaner than the current one. It will fix these problems you're having.

telans commented 5 years ago

Thanks, good to know.

telans commented 5 years ago

Just to note, this happens with the achievement ACHIEVEMENT_GAMES_PLAYED_DEFENDWONDER_MED for Age of Empires II (2013), everything else re-locks fine.

PaulCombal commented 5 years ago

SamRewritten is going under a rewriting, but I'm very busy, and it needs more contributors, we acknowledged the issue, but we just don't have too much time to invest in the project unfortunately

Le mer. 28 août 2019 à 23:36, telans notifications@github.com a écrit :

Just to note, this happens with the achievement ACHIEVEMENT_GAMES_PLAYED_DEFENDWONDER_MED for Age of Empires II (2013)

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/PaulCombal/SamRewritten/issues/4?email_source=notifications&email_token=ABJCDPQNHKIUBY5FLOILUGLQG3VVBA5CNFSM4G4WVW52YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5MROTI#issuecomment-525932365, or mute the thread https://github.com/notifications/unsubscribe-auth/ABJCDPV2X44H3WST5UZ4I6LQG3VVBANCNFSM4G4WVW5Q .

wgpierce commented 4 years ago

@LeLobster @telans issue should be fixed with latest master, please reopen if this is not the case. We have a much more reliable protocol for communicating between the two processes now. (One is the GUI and one is the spoofed app, and the GUI tells the spoofed app what to unlock.)