Commit Graph

1820 Commits

Author SHA1 Message Date
a
c5ce7ad44b completely refactor the serialization of AppTicket
+ catch objects by reference instead of by value in for loops: `for (DLC &dlc : DLCs)` vs `for (DLC dlc : DLCs)`

+ rely on C/C++ standard sizes instead of SDK definitions `uint16_t` vs `uint16` since the data sizes are very important

+ added more comments explaining the reasoning for any special handling

+ added comments exaplaining the layout of the data
2023-12-24 14:33:40 +02:00
a
e379220e16 completely refactor the serialization of AppTicketGC
+ avoid any magical numbers as much as possible & calculate the required size via sizeof()

+ use a macro to serialize a single field & increment the pointer at the same time

+ added some more debug statements
2023-12-24 14:33:40 +02:00
a
342d0a27b5 fixed is a sneaky instatnt memory deallocation, check this for details: viewtopic.php?p=2962649#p2962649 2023-12-24 14:33:40 +02:00
a
0e584aa09c hide these fields since they're constant for now, to make it clear for external callers that these are not meant to change 2023-12-24 14:33:40 +02:00
a
8b4914a684 use standard fixed-size types instead of SDK types since the size of the data is important, to avoid any magic compiler definitions (love C++) 2023-12-24 14:33:40 +02:00
a
e8f64faf17 add a new serialization method to DLC struct 2023-12-24 14:33:40 +02:00
a
af86d6efc2 TODO notes for later, if needed 2023-12-24 14:33:40 +02:00
a
355537bb19 cache the usage of user ID, for clarity 2023-12-24 14:33:40 +02:00
a
85c98a5933 avoid incrementing the counter beyond the DLC count 2023-12-24 14:33:40 +02:00
a
205d88b204 + used std::chrono to set the expiration time of the ticket instead of hardcoded numbers, for clarity. isn't 24 hours a very long time?
+ set TimeSinceStartup from the new startup_timer, which starts counting when the .dll/.so is loaded in memory, currently using the amount of seconds, not sure if this is correct though
2023-12-24 14:33:40 +02:00
a
7b4d447553 use a helper macro to set IP4, for clarity 2023-12-24 14:33:40 +02:00
a
20d5252e9c additional sanity check in InitiateGameConnection() + print input data address 2023-12-24 14:33:40 +02:00
a
adeb14f364 check for invalid data pointer in GetAuthSessionTicket() 2023-12-24 14:33:40 +02:00
a
23c435bfea moved functions around for a clearer context 2023-12-24 14:33:40 +02:00
a
681fbc4ecb deprecate the old auth implementation in base.cpp/.h 2023-12-24 14:33:40 +02:00
Detanup01
b697c8bd2d All Auth token support 2023-12-24 14:33:40 +02:00
otavepto
7e189c3ee5 update + cleanup changelog 2023-12-21 20:06:05 +02:00
otavepto
c9e653fee7 use an obnoxious name for the file handle variable used in the PRINT_DEBUG macro to avoid collisions, in the caller has a variable with same name 2023-12-21 19:33:05 +02:00
otavepto
6374c9e7f3 + in Linux build scripts don't use -d flag with rm
+ add global build stat message
2023-12-21 19:33:05 +02:00
otavepto
e28752420a cleanup the settings parser code, split into functions 2023-12-21 19:33:05 +02:00
otavepto
cf41523751 refactor includes order + add new helper function to keep yielding the thread for a given amount of time 2023-12-21 19:33:05 +02:00
otavepto
0a50c37584 don't cache deps build when pushing tag or opening pull requests 2023-12-21 19:32:20 +02:00
otavepto
62afce33ca remove hardcoded repo path + remove Git LFS flag since it's no longer needed 2023-12-21 19:32:20 +02:00
otavepto
098a490d3a Update README.md 2023-12-20 08:00:27 +02:00
otavepto
22470b5ab9 fixed printf specifier to avoid the warnings spam 2023-12-20 06:14:23 +02:00
otavepto
00e3132814 update changelog 2023-12-20 05:44:08 +02:00
otavepto
4fb6dcb3fa + learned the lesson, lock the global mutex in different other places just to be on the safe side, after lego 2k I am hesitent about all APIs, will this slow things down?
+ refactor some debug messages
2023-12-20 05:32:17 +02:00
otavepto
1333168d4a basic implementation for RequestAppProofOfPurchaseKey() and RequestAllProofOfPurchaseKeys() 2023-12-20 05:30:21 +02:00
otavepto
30c5b4eaa0 a simple implementation for GetEarliestPurchaseUnixTime() 2023-12-20 05:30:21 +02:00
otavepto
7bf9564005 current app shouldn't be a DLC right? 2023-12-20 05:30:21 +02:00
otavepto
9393518dfa check for invalid app ID uint32_max in different other places 2023-12-20 05:30:21 +02:00
otavepto
8289ec81a7 + fixed the implementation of BIsAppInstalled(), it must lock the global mutex since it is thread-safe, otherwise it will cause starvation and the current thread wion't yield, which triggers some games
+ even more accurate behavior for BIsAppInstalled(), reject app ID if it was in the DLC list and isUnlockAllDlc was false

+ citing the source for app id 0
2023-12-20 05:30:21 +02:00
otavepto
5c8a57e7af more accurate implementation for BGetSessionClientResolution 2023-12-20 05:30:21 +02:00
otavepto
d02f32327e more accurate implementation for Steam_Client::BReleaseSteamPipe(), return true if the pipe was released successfully 2023-12-20 05:30:21 +02:00
otavepto
f397f73644 add missing env var "SteamOverlayGameId" to steam_client and client_loader 2023-12-20 05:30:21 +02:00
otavepto
f83d930e7b added a timer + counter for reference, currently used to print timestamp in debug log 2023-12-20 05:30:21 +02:00
otavepto
ca043837d9 consistent debug log location, for games that change cwd multiple times while running 2023-12-20 05:30:21 +02:00
otavepto
0b49bd3338 + fixed error propagation in Windows build script, apparently set /a var+=another_var works only if another_var is a defined env var but NOT one of the "magic" builtins like errorlevel
+ output niceness when running protob compiler in Linux build
2023-12-20 05:30:17 +02:00
otavepto
9050fbe9eb update changelog 2023-12-18 05:45:21 +02:00
otavepto
6ed6a0a04b + changed the behavior of GetCurrentBetaName() to comply with the docs, might break stuff
+ allow customizing the behavior via is_beta_branch.txt + force_branch_name.txt config files
2023-12-18 05:45:21 +02:00
otavepto
fa8f594207 + more accurate implementation for BIsAppInstalled, it now rejects uint32_max
+ allow behavior customizization via installed_app_ids.txt config file

+ limit/lock list of installed apps on an empty file (similar to dlc.txt)
2023-12-18 05:45:21 +02:00
ota
90b403fb3d + add package scripts
+ add steps: package + release to add packaged build to release when pushing on tag

+ support building on prefixed branch name with wildcard

+ support event trigger on tag

+ support event trigger on workflow dispatch for manual trigger
2023-12-18 02:50:05 +02:00
ota
8390e96972 + self reference the deps from the corresponding branches in this repo, this makes the repo self contained
+ update workflows to point at this repo when cloning deps

+ update branches paths

+ update submodules
2023-12-18 02:50:05 +02:00
ota
8fb7231a36 friendly workflows names 2023-12-18 02:50:05 +02:00
ota
21c21737e7 trigger on specific branches + on pull request to dev 2023-12-18 02:50:05 +02:00
ota
f2d1f046e2 keep all workflow artifacts for 1 day only 2023-12-18 02:50:05 +02:00
ota
7ddae813f9 + use env vars for deps cache key & cache dir
+ upate cache step id
2023-12-18 02:50:05 +02:00
ota
9530f4111e chmod 777 gen emu config in linux & use sudo 2023-12-18 02:50:05 +02:00
ota
6afb4560d0 + friendly name for linux gen emu config workflow
+ don't fail job on failure of release/debug

+ update workflows to add on-success condition in upload
2023-12-18 02:50:05 +02:00
ota
e19d2a423f add workflow scripts for Windows & Linux for generate_emu_config 2023-12-18 02:50:05 +02:00