otavepto
5c312306d4
use const ref in many places
2024-03-08 18:13:29 +02:00
otavepto
88ab37d78f
* proper fix for the window resizing problem, thanks to Nemirtingas
...
* remove the code which adds custom Windows fonts but keep scaling
* only attempt to load achievements images when hook is ready
* cleanup overlay images on unhook
* free the detector when we get a renderer hook instance
* lock everywhere!
* prefix the debug messages for a cleaner debug log
2024-03-08 18:13:29 +02:00
otavepto
b137cf0f38
prefix these debug messages in networking
2024-03-08 18:13:29 +02:00
otavepto
2cbc786430
revert the workaround for the usage of private/hidden glibc exports on linux, and fix it by directly calling the corresponding functions without the ver
parameter: stat, lstat, stat64, lstat64, mknod.
...
might break stuff!
reverts 3b6663ca99
2024-03-01 13:35:39 +02:00
otavepto
46424f43bc
fix this debug message in steam_networking
2024-02-29 21:06:50 +02:00
otavepto
9eceff7792
Visual Studio has dubious language extensions!
2024-02-29 19:59:53 +02:00
otavepto
dfc8be4a7c
change the server type parameter of the request before continuing the code, since it's used multiple times and also being set in the request object
2024-02-29 19:59:53 +02:00
otavepto
3d836d694d
added 2 new options which enable the new behavior for Steam Matchmaking Servers
2024-02-29 19:59:53 +02:00
otavepto
6a7bd6c063
grab players list for Steam_Matchmaking_Servers from Steam_GameServers , probably broken!
2024-02-29 19:59:53 +02:00
otavepto
8393261473
* partially revert matchmaking code
...
* request all server lists as LAN servers
2024-02-29 19:59:53 +02:00
otavepto
c38601fdcd
Restore networking, source query, avatar, friends changes/additions from: 75e6d7c8ab
, 4399c0b12b
2024-02-29 19:59:53 +02:00
otavepto
001e74aafa
revert all networking, source query, avatar, friends changes/additions from: 75e6d7c8ab
, 4399c0b12b
2024-02-29 19:59:53 +02:00
otavepto
4dd152911d
* more accurately handle and download steamhttp requests in multi-threaded manner
...
* allow forcing the API `Steam_HTTP::SendHTTPRequest()` to succeed via a config file
* change http_online.txt to download_steamhttp_requests.txt
2024-02-23 20:41:30 +02:00
otavepto
505bec9896
some logging for networking
2024-02-17 22:36:24 +02:00
otavepto
b92a70e9ac
a hacky fix for the overlay on dx12
2024-02-09 20:39:01 +02:00
otavepto
e4af4f2b00
allow setting the ip country reported to the game via a file
2024-02-07 04:22:33 +02:00
otavepto
1bba2c09b0
* allow setting the achievements notifications via config file
...
* fixed a mistake when discarding ut8 bom marker
2024-01-26 14:37:17 +02:00
otavepto
b016f3dafa
refactor user_stats
...
* use const str as a param for defined_achievements_find
* GetStat()/SetStat(): return false if given name is not defined by stats.txt
* according to docs:
GetAchievement()/SetAchievement()/ClearAchievement()/GetAchievementAndUnlockTime()/IndicateAchievementProgress()
will always return true if the name was not null and exists in Admin page (achievements.json)
* ClearAchievement(): don't write user data unless json object doesn't exist, or key "earned" is true
* reduce the code in GetAchievementDisplayAttribute()
* according to docs IndicateAchievementProgress() returns false if the achievement is already unlocked
* many logging
2024-01-25 23:24:16 +02:00
otavepto
374b9a8029
forgot that!
2024-01-25 23:24:16 +02:00
otavepto
a09bc24437
refactor steam_apps
2024-01-25 23:24:16 +02:00
otavepto
8c012f7101
lots of todo notes
2024-01-25 23:24:16 +02:00
otavepto
2c428e071a
make sure mod path, if relative, would be relative to the lib itself + return utf8 string
2024-01-25 17:06:45 +02:00
otavepto
d73faeff38
use the new functions to check for friend ID in the auto accept list
2024-01-24 22:57:32 +02:00
otavepto
245e1414fc
allow accepting any invitation by using an empty file
2024-01-24 22:57:32 +02:00
otavepto
6864aafc12
restored missing files! why!
2024-01-24 22:57:32 +02:00
otavepto
2fa2a9229c
parse the new disable_overlay_warning_*.txt settings + fixed or condition of warn_forced_setting
2024-01-24 22:57:32 +02:00
otavepto
3a64b604a0
debug message
2024-01-22 19:43:56 +02:00
otavepto
9e84f4abec
forgot that while debugging!
2024-01-22 19:26:51 +02:00
otavepto
371d50b62e
make sure buffer is nulled in ugc::GetItemInstallInfo() + a bunch of params check & stub code
2024-01-20 23:01:29 +02:00
otavepto
2800264040
make sure mod path is absolute and normalized for current OS
2024-01-20 22:51:40 +02:00
otavepto
6249d7ca4d
* attempt to auto detect mods with the same behavior as if they were defined in mods.json, for an easier config
...
* new function in local storage to get list of folders at root level, given some path
* use last week epoch as the default time for mods dates (created, added, etc...)
* UGC: some params checks according to SDK docs for CreateQueryXXX() functions
* fixed some mistakes
2024-01-20 18:46:43 +02:00
otavepto
45d76fbc31
bunch of scoped debug messages
2024-01-20 18:46:43 +02:00
otavepto
43debcbaf8
* local storage: allow files in root of user data
...
* common mods subscription state between ugc and remote storage
* ugc: implement SetUserItemVote(), GetUserItemVote(), AddItemToFavorites(), RemoveItemFromFavorites(), favorite mods list is now save in `favorites.txt` in the user data folder
* ugc: make sure returned mod folder from GetItemInstallInfo() is null terminated & validate arg
2024-01-20 18:46:43 +02:00
otavepto
0d1e54e9a2
* a working impl to bridge ugc/remote_storage as suggested by Detanup01
...
* edits by Kola124 + other changes in the settings parser
* random ugc mod handle at object creation
* file size using std::filesystem + fix warnings + some print + arg validation
2024-01-20 18:46:43 +02:00
Detanup01
4afd10219d
Update settings_parser.cpp
...
hopefully works
2024-01-20 18:46:43 +02:00
Detanup01
7f099ed0ad
Update settings_parser.cpp
...
Fixed issue
2024-01-20 18:46:43 +02:00
Detanup01
146c01a9c3
Update settings_parser.cpp
...
adding code from recommended PR
2024-01-20 18:46:43 +02:00
Detanup01
0f002f7ef9
Update steam_ugc.h
...
forgot this one
2024-01-20 18:46:43 +02:00
Detanup01
96005c48ea
Update settings.cpp
2024-01-20 18:46:43 +02:00
Detanup01
03f9da07cb
Update steam_ugc.h
...
introducing temporary thing to apps can see its good to let the file tru (will not be invalid!)
- GetItemDownloadInfo implementation
2024-01-20 18:46:43 +02:00
Detanup01
0bc7438257
Update steam_remote_storage.h
...
better fprintf
2024-01-20 18:46:43 +02:00
Detanup01
8ad0fc4aa2
Update steam_ugc.h
...
Adding this field for future todo
2024-01-20 18:46:43 +02:00
Detanup01
b4e70b9778
Update steam_remote_storage.h
...
soem more debug
2024-01-20 18:46:43 +02:00
Detanup01
1bdd540498
Update steam_remote_storage.h
...
Added better version if this.
Now support from reading mods and using the mods file
2024-01-20 18:46:43 +02:00
otavepto
ab99591483
stub for appticket
2024-01-19 04:28:03 +02:00
otavepto
0358bcae89
parse the crash printer path from config file
2024-01-19 03:51:44 +02:00
otavepto
43ce82bf9c
fix compilation error + some print messages
2024-01-05 22:10:30 +02:00
otavepto
54af73788b
print more missing old interfaces + some consistency
2024-01-05 22:10:30 +02:00
otavepto
c37299013c
consistency with interfaces are accessed/casted
2024-01-05 22:10:30 +02:00
Detanup01
e221d8e1d2
Fix Replace
2024-01-05 17:03:03 +02:00
otavepto
dfc55067e2
static early purchase time
2023-12-28 02:15:09 +02:00
otavepto
440d8335e2
fixed a bunch of includes
2023-12-28 01:30:46 +02:00
otavepto
aa03e94378
relocate dll .h files
2023-12-28 01:30:46 +02:00
otavepto
4eb4f8e0fc
update some includes to be relative to current dir
2023-12-28 01:30:46 +02:00
otavepto
ce9b957c3d
fixed warning in auth when building with clang (dammit!)
2023-12-25 18:30:44 +02:00
otavepto
0766282e00
some output formatting
2023-12-25 18:30:44 +02:00
otavepto
8d9c91b0f2
fix the includes in auth.h to point at mbdedtls in a relative manner
2023-12-25 18:30:44 +02:00
otavepto
9c927c01f6
fixed warnings in auth.h
2023-12-25 04:09:49 +02:00
otavepto
6650858e24
disable another warning message after rebase
2023-12-25 04:09:49 +02:00
otavepto
91d470a358
fixed all incorrect usages of NULL in place of a decimal number + removed compiler flags: -Wno-int-to-void-pointer-cast
and -Wno-null-conversion
2023-12-25 04:09:49 +02:00
otavepto
1b04526d9d
fixed all printf warnings for Linux & Windows
2023-12-25 04:09:49 +02:00
otavepto
4121101400
also allow setting the mod "score" in the mods.json
2023-12-25 01:47:45 +02:00
otavepto
9822f4d766
allow overriding mod path & mod preview_url in the mods.json file, suggested by remelt from: viewtopic.php?p=2964432#p2964432
2023-12-25 01:47:45 +02:00
otavepto
555bafae0b
use the index argument to grab the preview URL from UGC query result, thanks to remelt from: viewtopic.php?p=2964432#p2964432
2023-12-25 01:47:32 +02:00
otavepto
1c84f2c324
use a global ticket counter for GC struct
2023-12-24 14:33:40 +02:00
otavepto
b5923696cd
wrong buffer!
2023-12-24 14:33:40 +02:00
otavepto
95fe01ef9f
updated Auth_Data serializtion method to add a signature to the data
2023-12-24 14:33:40 +02:00
otavepto
a626470846
refactored the serializatio of Auth_Data
2023-12-24 14:33:40 +02:00
a
48a8ada43f
very minor refactoring to Auth_Data
2023-12-24 14:33:40 +02:00
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
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
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
22470b5ab9
fixed printf specifier to avoid the warnings spam
2023-12-20 06:14:23 +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
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
a
0ffc15352c
SDK v1.58a + some fixes to the APIs
2023-12-14 04:50:31 +02:00
a
20105997de
(RIN forum) added fix for glyphs icons for xbox 360 controller by 0x0315 from https://cs.rin.ru/forum/viewtopic.php?p=2949498#p2949498
2023-12-14 04:50:28 +02:00
a
439ffa5237
(RIN forum) added cvsR4U1 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2936697#p2936697
2023-12-14 04:49:15 +02:00
a
c10a960546
use utf-8 when sanitizing settings, mainly for local_save.txt config file
2023-12-14 04:47:55 +02:00
a
62a92e5bf6
(RIN forum) added new release 4 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2933673#p2933673
2023-12-14 04:45:59 +02:00
a
b01a7ee116
(RIN forum) added hotfix 3 by ce20fdf2 from https://cs.rin.ru/forum/viewtopic.php?p=2921215#p2921215
...
* + added missing implementation of (de)sanitize_string when NO_DISK_WRITE is defined which this fixes compilation of lobby_connect
* + check for empty string in (de)sanitize_file_name() before accessing its items
2023-12-14 04:45:55 +02:00
a
ad9dfb2bd1
(RIN forum) updated and safer impl for Local_Storage::load_image_resized() "for those cases where it might fail to allocate memory for the resized image" by RIPAciD: https://cs.rin.ru/forum/viewtopic.php?p=2884627#p2884627
2023-12-14 04:45:02 +02:00
a
4399c0b12b
(RIN forum) added hotfix 2 by ce20fdf2: https://cs.rin.ru/forum/viewtopic.php?p=2884110#p2884110
...
* + avoid unnecessary locks in experimental overlay if the functionality is disabled
2023-12-14 04:44:39 +02:00
a
75e6d7c8ab
(RIN forum) add initial hotfix by ce20fdf2
...
* + revert the change to SetProduct() and SetGameDescription()
* + less verbose return in Steam_GameServer::BSecure()
* + add missing note in ReadMe about libssq
2023-12-14 04:40:25 +02:00
a
d95ceb0fc9
impl for GetAuthTicketForWebApi
2023-12-14 04:40:25 +02:00
a
caa4024de3
avoid locking the global_mutex every time when getting the global steamclient instance, double check for null and lock on the first time the pointer is initialized, should speed things up
2023-12-14 04:39:35 +02:00
a
3999818a6b
explicitly use the ASCII version of Windows APIs when building to avoid conflict when UNICODE/_UNICODE def is defined (base.cpp)
2023-12-14 04:39:35 +02:00
a
3afde6e996
remove RtlGenRandom and use the newer BCryptGenRandom
2023-12-14 04:29:42 +02:00
Nicolas Gnyra
4418f27f78
(PR https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/merge_requests/52 ) Use sort_method
when comparing scores in UploadLeaderboardScore
2023-12-14 04:18:16 +02:00
ayaka
3b6663ca99
(PR https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/merge_requests/42 ) dll/wrap: fix build for glibc 2.33
...
I don't think I need the step that converting to legacy struct.
Signed-off-by: ayaka <ayaka@soulik.info>
2023-12-14 04:18:06 +02:00
Mr_Goldberg
475342f0d8
SDK 1.56 and 1.57
2023-05-08 22:36:51 -04:00
Mr_Goldberg
802d8bcc8f
More accurate SetLobbyData.
2022-09-06 13:30:20 -04:00
Mr_Goldberg
7e1824290a
disable_lan_only.txt can now be put inside the steam_settings folder.
2022-09-06 13:29:39 -04:00
Mr_Goldberg
647e894d62
Add prints for debugging.
2022-09-06 13:29:02 -04:00
Mr_Goldberg
c231c87312
Allow message sending on not yet connected networking sockets.
2022-09-03 04:29:08 -04:00
Mr_Goldberg
373801b3a4
Fix some UDP packet size issues
2022-09-03 04:21:08 -04:00
Mr_Goldberg
05e2c3bef0
Implement TCP_NODELAY, thanks #209
2022-09-03 04:20:03 -04:00
Mr_Goldberg
0800649d8f
Add supported_languages.txt to specify which languages are available in a game.
2022-08-13 14:40:55 -04:00
Mr_Goldberg
a4ef72cb3c
Don't create new client instance when unregistering callbacks.
2022-08-13 14:37:23 -04:00
Mr_Goldberg
0082242a6f
LAN only filtering now properly handles mapped ipv4.
2022-08-13 14:36:34 -04:00
Mr_Goldberg
3abc5976e0
Reset LastError in some functions for game devs that can't code.
2022-08-11 20:52:02 -04:00
Mr_Goldberg
0c16f1942a
Better appticket format. Thanks Nemirtingas.
2022-08-11 20:51:04 -04:00
Mr_Goldberg
c22b3cd3d3
Fix crash.
2022-08-10 03:24:53 -04:00
Mr_Goldberg
7163daa6c1
Destroy client, network sockets and other objects on shutdown.
2022-08-10 03:24:29 -04:00
Mr_Goldberg
7c419e0afe
Fix overlay crash in games that load then unload steam api dll.
2022-08-07 23:11:21 -04:00
Mr_Goldberg
5ce4ac8429
Add support for multiple languages for achievements.
2022-08-07 23:07:30 -04:00
Mr_Goldberg
0d65114ee6
Fix controller rumble code.
2022-08-07 23:06:43 -04:00
Mr_Goldberg
5234d8b0e6
Implement leaderboard scores.
2022-08-07 04:37:57 -04:00
Mr_Goldberg
ad66573a20
Fix crashes.
2022-08-05 18:45:33 -04:00
Mr_Goldberg
528120d102
Multiple achievements can now use the same stat as a trigger.
2022-08-05 18:44:49 -04:00
Mr_Goldberg
5e880cd974
Add achievements display to overlay and ability to change some settings.
2022-08-05 02:09:43 -04:00
Mr_Goldberg
c17fb0c931
Update Nemirtingas overlay to latest.
2022-08-05 02:06:42 -04:00
Mr_Goldberg
ba877b6e78
sdk 1.55
2022-08-05 01:32:20 -04:00
Mr_Goldberg
0fc5a564e1
Malformed achievements config should not crash stuff anymore.
2022-08-02 01:16:40 -04:00
Mr_Goldberg
173c65a229
Much faster stat get.
2022-08-02 01:13:55 -04:00
Mr_Goldberg
942f011ee0
Implement ConsumeItem.
2022-07-31 17:10:31 -04:00
Mr_Goldberg
d3e8a701dd
All interface versions from sdk 1.0 and up are now supported.
2022-07-31 15:49:45 -04:00
Mr_Goldberg
8695ea2dce
Support achievements that are triggered automatically with stats.
...
The achievements config MUST be generated with the achievements_gen.py script.
2022-07-12 01:09:27 -04:00
Mr_Goldberg
3f8ce69b6d
SDK 1.54
2022-07-12 01:04:56 -04:00
Mr_Goldberg
d8bcb11ef2
The steam api seems to treat bools as the full register not just al.
2022-06-04 17:16:11 -04:00
Mr_Goldberg
3dab666dd8
Implement the filtertext functions.
2022-05-29 15:51:53 -04:00
Mr_Goldberg
bfe8e156f0
Add message numbers to networking sockets and sort received messages.
2022-05-29 15:51:36 -04:00
Mr_Goldberg
9c7499aa27
Fix sending to localhost ips.
2022-05-29 15:46:31 -04:00