otavepto
77592c3b4f
move everything inside a different ini
2024-04-17 21:20:34 +02:00
otavepto
35c0c408b9
* allow changing the name of the base folder used to store save data via saves_folder_name
, by default it would be Goldberg SteamEmu Saves
...
* changed the environment variable `SteamAppPath` to `GseAppPath`
* allow loading `config.ini` from global settings path + merge it with the local one, and allow the local one to override the global one
* fixed the path returned by `get_user_appdata_path()` to include the path separator
* updated readmes
2024-04-16 22:59:27 +02:00
otavepto
2ee64147bd
allow creating the file local_save.txt
inside the steam_settings
folder
2024-04-15 21:13:11 +02:00
otavepto
7a5d4f75c6
fix a mistake
2024-04-14 21:27:21 +02:00
otavepto
d36ec05f1b
output verbose func signature on linux
2024-04-14 20:56:18 +02:00
otavepto
d7ffeee063
fixed some mistakes + debug messages
2024-04-14 19:10:35 +02:00
otavepto
f50db936e2
* parse all ini entries
...
* added missing example for local_save.txt
2024-04-14 18:41:09 +02:00
otavepto
77ea53b59e
initial shape
2024-04-14 11:09:18 +02:00
otavepto
484fc2a982
* set these env vars for a more accurate emulation:
...
- `SteamAppUser`
- `SteamUser`
- `SteamClientLaunch`
- `SteamEnv`
- `SteamPath`
2024-04-13 17:35:10 +02:00
otavepto
ca8fb4bc35
increase run callbacks background thread polling time to ~200ms
2024-04-12 10:25:34 +02:00
otavepto
f315bec961
more callbacks
2024-04-11 14:08:04 +02:00
otavepto
4d895b63b0
more accurate implementation for callbacks and call results in UserStats
and GameServerStats
interfaces
2024-04-11 06:40:29 +02:00
otavepto
1b18338579
debug log for entry and exit of settings parser
2024-04-11 02:56:38 +02:00
otavepto
9be27ffd85
* allow loading the overlay fonts from the global settings folder Goldberg SteamEmu Settings/settings/fonts
2024-04-11 01:16:53 +02:00
otavepto
3c2b849601
fix that stupid mistake in overlay when loading audio buffers
2024-04-10 12:27:37 +02:00
otavepto
e62f9251df
allow injecting id string during build via command line switch +build_str <str>
2024-04-10 11:05:26 +02:00
otavepto
9fe55f2e81
for the overlay:
...
* reduce code duplication
* avoid bypassing local_storage when loading sounds
* avoid alloating sound buffers via new-delete, use std::vector
* clear/reset all global objects on destroy
2024-04-10 11:05:26 +02:00
otavepto
048b9a94cd
make sure allocated data ptr in null (not garbage)
2024-04-10 11:05:26 +02:00
otavepto
d802dba47d
fix size check bug in matchmaking_servers
2024-04-10 11:05:26 +02:00
otavepto
4afa1926ad
refactor settings parser code + remove deprecated setting for local save location, already saved in local_storage
2024-04-10 11:05:26 +02:00
otavepto
b01486c765
* cleanup custom sound buffers on destroy + cleanup entire overlay class on destroy
...
* fix sound for auto-accept invites
2024-04-10 11:05:26 +02:00
otavepto
53533ee4af
don't bypass local_storage in steam_friends class
2024-04-10 11:05:26 +02:00
otavepto
28da5747db
const ref args in some places
2024-04-09 19:10:04 +02:00
otavepto
2deda8a2eb
disable the overlay by default, and only enable it via the config file enable_experimental_overlay.txt
, avoiding many crashes
2024-04-09 15:45:54 +02:00
otavepto
b4d061e949
force add gameserver if always_lan_type was specified, not necessary but just in case
2024-04-09 11:13:36 +02:00
otavepto
c48b5c4a37
note for reference
2024-04-08 00:33:10 +02:00
otavepto
4f0df79940
properly format some debug messages in auth
2024-04-06 22:58:47 +02:00
otavepto
392305c1e3
run the background thread for callbacks earlier inside Steam_Client::ConnectToGlobalUser()
...
since some games don't call `SteamAPI_RunCallbacks()` or `SteamAPI_ManualDispatch_RunFrame()` or `Steam_BGetCallback()`
hence all run_callbacks() will never run, also networking callbacks won't run
2024-04-06 08:30:08 +02:00
otavepto
0b5d38ae7e
* properly implement Steam_Apps::GetAvailableGameLanguages()
...
* ensure current emu language is inside supported_languages list
2024-04-06 08:30:08 +02:00
otavepto
8576d149d3
remove functions names prefixes in debug logs
2024-04-06 08:30:08 +02:00
otavepto
28cdb2c74e
output func name in debug log
2024-04-06 08:30:07 +02:00
otavepto
5ddbfccfdd
* load overlay fonts with relative paths from steam_settings\fonts
...
* remove invalid parameters from `overlay_appearance.txt`
* example funny font!
2024-04-03 20:26:39 +02:00
detiam
bfdca710f4
allow load custom ttf
2024-04-03 12:19:47 +02:00
detiam
ac709e78e6
change overlay builtin font to unifont
2024-04-03 12:19:47 +02:00
otavepto
b5b9dfe437
descriptive var name for these tests
2024-04-02 22:33:04 +02:00
otavepto
3cedf8dbe3
refactor line ending + error string
2024-04-02 02:48:57 +02:00
Detanup01
7e3f2e0900
i hate myself
2024-04-02 01:15:42 +02:00
Detanup01
bfd2235684
Update for 159
2024-04-02 01:15:42 +02:00
otavepto
0672139f46
properly implement Steam_User_Stats::ResetAllStats()
2024-04-01 19:23:55 +02:00
otavepto
51197c5348
allow user_stats to send data immediately via config file
2024-04-01 19:23:55 +02:00
otavepto
0ed6dc6808
prefer udp when sending leaderboards
2024-04-01 19:23:55 +02:00
otavepto
e31f030d55
allow gameserver to send data as soon as possible via immediate_gameserver_stats.txt
2024-04-01 19:23:55 +02:00
otavepto
2f5b0a4bea
sanity check in gameserver_stats if the msg source steamid was similar to us!
2024-04-01 19:23:55 +02:00
otavepto
e143a6dd82
* new function in networking to send to all gameservers only
...
* broadcast user stats with gameservers only
2024-04-01 19:23:55 +02:00
otavepto
04e7a7d476
opt-in sharing leaderboards instead of opt-out
2024-04-01 19:23:55 +02:00
otavepto
93172e642e
allow disabling the new options via config files
2024-04-01 19:23:55 +02:00
otavepto
a36cadbf12
allow empty board entries, don't force and entry for current user
2024-04-01 19:23:55 +02:00
otavepto
4d03c5b402
fix a memory leak
2024-04-01 19:23:55 +02:00
otavepto
d8a91edcf5
only accept leaderboards updates from the same appid
2024-04-01 19:23:55 +02:00
otavepto
caa9401369
* for gameserver_stats & user_stats: distinguish between stats update requests from server and client, avoiding a scenario where a client would overwrite another client's stats
...
* fixed linux compilation error
2024-04-01 19:23:55 +02:00
otavepto
995a296e59
fix that clang warning
2024-04-01 19:23:55 +02:00
otavepto
d2f23fbea5
share leaderboards scores with connected players, adjust players ranks locally, and sort entries as needed by the game
2024-04-01 19:23:55 +02:00
otavepto
c17cb8a4f7
in gameserver_stats: remove & timeout pending requests if the user disconnected
2024-04-01 19:23:55 +02:00
otavepto
f423b07eef
* common function to do case insensitive compare
...
* some const + ref in different places
* some logs, comments & refactoring
2024-04-01 19:23:55 +02:00
otavepto
4809a7565c
* separate the config file disable_leaderboards_create_unknown.txt
...
* some refactoring
2024-03-26 23:48:57 +02:00
otavepto
af77ce4f5a
log messages
2024-03-26 21:39:52 +02:00
otavepto
dfbd928311
decrease min server latency to 2ms
2024-03-26 21:39:52 +02:00
otavepto
3c9b327fb5
* cleanup/remove all networking callbacks on object destruction
...
* reset pointers on client destruction
2024-03-26 21:39:52 +02:00
otavepto
b6c7df40b6
* implemented the missing interface ISteamGameServerStats
, allowing game servers to exchange user stats with players
...
* add rmCallback() to networking
* refactor gameserver_stats into a separate .cpp file
2024-03-26 21:39:52 +02:00
otavepto
75bb4ff03d
* missing delete for ubc_bridge in steam_client
...
* Steam_UserStats: use const ref when getting the stats list/map
* Steam_UserStats: don't fail in `GetStat()`/`GetAchievement()` if output buffer is null
* change datatype for default int stat, should be signed
* some logging & comments
2024-03-26 21:39:52 +02:00
otavepto
2427ee12fd
* use const ref for get/set env var
...
* lock global mutex when generating steam api call id
2024-03-26 21:39:52 +02:00
otavepto
166e7db122
more logging
2024-03-20 00:25:54 +02:00
otavepto
846fd6815e
allow overlay invitations to obscure game input to be able to accept/reject the request
2024-03-18 05:57:24 +02:00
otavepto
206732dc8e
don't log the periodic callback messages, they fill the log with non-useful events
2024-03-18 01:19:24 +02:00
otavepto
c193a8d4ce
more debug messages in matchmaking
2024-03-17 04:29:49 +02:00
otavepto
5417e0e4c2
Steam_Apps::GetCurrentBetaName()
make sure the out buffer is null terminated
2024-03-17 01:58:57 +02:00
otavepto
f00fdac3ac
update comment + changelog
2024-03-17 01:22:18 +02:00
bitsynth
5a7fa86310
fix Age of Empires 2: Definitive Edition
...
this game expects the current app to exist as a owned DLC. if not true, the game will only load the "Return of Rome" game mode, if that DLC is owned, or load the base game with most options disabled if it is not
2024-03-17 01:15:08 +02:00
otavepto
db07e4aadf
in Steam_Utils::IsAPICallCompleted initialize the pFailed param to false
2024-03-16 07:14:04 +02:00
otavepto
325631e1fd
* run SteamAPI_ManualDispatch_Init() only once
...
* don't run callbacks background thread when calling Steam_BGetCallback()
2024-03-16 05:43:44 +02:00
otavepto
28f097c9c1
log when adding callresult
2024-03-16 05:41:05 +02:00
otavepto
37261bedb8
* don't run callbacks in steam_utils::runframe()
...
* initialize a param in steam_utils::isapicompleted()
2024-03-16 05:20:40 +02:00
otavepto
09979e8eca
add a param to prevent running the callbacks background thread, for manual dispatch
2024-03-16 05:19:04 +02:00
otavepto
7700cd5dda
log message
2024-03-15 15:40:33 +02:00
otavepto
3dbfbb76b1
* refactor steam_utils into a separate cpp file
...
* call RunCallbacks() inside Steam_Utils::RunFrame()
2024-03-15 02:43:59 +02:00
otavepto
af237639d5
* initially attempt to load the icons of all achievements, this will slow things down at startup,
...
but avoids having to load the achievement icon during gameplay which causes micro-stutter
2024-03-15 00:03:41 +02:00
otavepto
0b86464374
* load the icons of a single achievement each overlay callback invokation, will slow things down during startup
...
but this avoids having to load the achievement icon during gameplay which causes micro-stutter
* avoid loading and resizing the achievement icon each time it's unlocked
* Local_Storage: avoid allocating buffers unless `stbi_load()` was successfull
2024-03-15 00:03:41 +02:00
otavepto
2020c514d1
prefix a debug message
2024-03-09 13:47:59 +02:00
otavepto
896dfd736f
revert the initial delay for the overlay renderer detector back to 0
2024-03-08 21:28:17 +02:00
otavepto
875e3e4859
allow changing the font glyph spacing
2024-03-08 18:13:29 +02:00
otavepto
65edb7081a
allow controlling the renderer detector timeout via a config file
2024-03-08 18:13:29 +02:00
otavepto
88203b5c6f
* fixed a bug in settings parser where lines with single characters would be completely removed when stripped of spaces
...
* refactored and moved all helper functions into the relevant helpers source file
2024-03-08 18:13:29 +02:00
otavepto
3f09a4c929
spicify float literal
2024-03-08 18:13:29 +02:00
otavepto
0dd755df84
decrease the default overlay hook delay to 3 sec
2024-03-08 18:13:29 +02:00
otavepto
5df75be04b
attempt to load the locked achievement icon from the json key icongray
if the normal one failed, adding compatibility with older format
2024-03-08 18:13:29 +02:00
otavepto
4d23a859f3
* new config file overlay_hook_delay_sec.txt
to control the initial delay for the overlay's renderer detector
...
* send the value of the `accept_overlay_invites` to settings_server too!
2024-03-08 18:13:29 +02:00
otavepto
6a5fbf2b7d
formatting
2024-03-08 18:13:29 +02:00
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
Mr_Goldberg
03426b217d
Set the appid env variables.
2022-05-29 15:45:39 -04:00
Mr_Goldberg
d2ef266f81
SetConfigValue function should return true.
2022-05-27 13:03:12 -04:00
Mr_Goldberg
994207770b
Retry connections in steam networking sockets a few times.
2022-05-23 01:31:14 -04:00
Mr_Goldberg
a8c03fe8cd
Fix crash with flat api.
2022-05-23 01:30:36 -04:00
Mr_Goldberg
a0e558ed4c
Implement some networking sockets functions.
2022-05-21 00:38:29 -04:00
Mr_Goldberg
6d5cb3181f
Make lobby ids more like the ones on steam.
2022-05-21 00:37:48 -04:00
Mr_Goldberg
95fc8ac687
Send huge unreliable packets by TCP when they are too big.
2022-05-07 16:37:09 -04:00
Mr_Goldberg
d215070876
Whitelist custom broadcasts in non LAN ip blocking.
2022-04-30 22:23:42 -04:00
Mr_Goldberg
f6b8068883
Controller fixes.
...
Fix joystick dpad emulation diagonal direction.
Always activate an action set by default.
2022-04-02 04:33:34 -04:00
Mr_Goldberg
5533a9d5b0
Make gameserver and client interfaces share the same socket pool.
...
Some games depend on this behavior.
2022-01-26 12:03:08 -05:00
Mr_Goldberg
eda9abd2aa
Fix linux CI build.
2022-01-26 03:07:49 -05:00
Mr_Goldberg
f852e5c272
steam_interfaces.txt can now be put in the steam_settings folder.
2022-01-26 01:52:21 -05:00
Mr_Goldberg
0a5f136bc3
Fix games that use the ip and port to identify socket connections.
2022-01-26 01:51:55 -05:00