732 Commits

Author SHA1 Message Date
alex47exe
d7f6576c65
Merge branch 'dev' into dev 2024-08-23 00:30:13 +01:00
Detanup01
f981989926
Merge pull request #27 from otavepto/remote_aa/patch-overlay-background-upload
Dramatically decrease the startup locking/halt time when the overlay is enabled
2024-08-22 20:39:06 +02:00
a
4017266241 * deprecate lazy_load_achievements_icons in favor of paginated_achievements_icons
* new option `upload_achievements_icons_to_gpu` in `configs.main.ini` which controls whether the overlay should upload the achievements icons to the GPU and display them or not
* synchronize overlay proc with the periodic steam callback in a better way to avoid FPS drop
* prevent overlay flickering regression
* upload achievements icons to the GPU in the overlay proc periodically, this dramatically decreased the startup locking/halt time
* fix a potential deadlock scenario in the overlay as a result of synchonizing with 2 mutex objects
2024-08-21 23:56:52 +03:00
a
4b9f88d8ec * change return type of all client functions from bool to steam_bool to avoid inconsistency problem in the client library
* implement missing client functions
  - `Breakpad_SteamSendMiniDump()`
  - `Steam_IsKnownInterface()`
  - `Steam_NotifyMissingInterface()`
2024-08-21 22:45:02 +03:00
alex47exe
d17334b11a
Merge branch 'dev' into dev 2024-08-18 21:22:04 +01:00
Detanup01
a8bebdde0a
Merge pull request #7 from otavepto/patch-game-stats-csv
Allow saving stats from `ISteamGameStats` to .csv files
2024-08-18 20:53:05 +02:00
Detanup01
c1a3856b20
Merge pull request #12 from Sak32009/dev
Updated third-party and libs deps + improved package_win_release.bat and build_win_premake.bat + added generate_credits.bat from SOURCE.txt files.
2024-08-18 20:49:58 +02:00
Detanup01
557aa0237f
Merge pull request #10 from otavepto/patch-steam-http
Fixes for `Steam_Http` class
2024-08-18 20:49:37 +02:00
Detanup01
f1d4ba689b
Merge pull request #9 from otavepto/patch-user-stats-icon
Implement `Steam_User_Stats::GetAchievementIcon()`
2024-08-18 19:02:45 +02:00
Sak32009
f4d9f23ac6 update stb lib 2024-08-18 11:05:49 +02:00
a
6328061212 fix vs warnings 2024-08-18 05:07:15 +03:00
a
6066d0cbe8 move the ini option steam_game_stats_reports_dir to the section [main::misc] 2024-08-18 05:06:53 +03:00
a
a372a2ddb4 save statistics from ISteamGameStats to disk in a csv file 2024-08-18 05:06:20 +03:00
a
a647c6cfdd new ini option steam_game_stats_reports_dir to define a folder where statistics from ISteamGameStats will be saved 2024-08-18 05:06:14 +03:00
a
97bec67073 split steam_user_stats class into multiple files for readability 2024-08-18 05:02:40 +03:00
a
530a26f07b * don't load achievements icons in the constructor of steam_user_stats, instead wait for the next call to the run callback
* fix a bug where loaded image handle wasn't being saved
2024-08-18 05:01:46 +03:00
a
573e17b45a * new option to lazy load achievements icons in memory when they're requested, rather than loading them on the next call to the run callback
* move stats options in the ini to a separate section [main::stats]
2024-08-18 05:01:39 +03:00
a
167a64a496 generate random number for each debug log file 2024-08-18 05:01:32 +03:00
a
e04b6c9575 use a global constant for invalid image handle 2024-08-18 05:01:18 +03:00
a
4e5aa8085e * implement Steam_User_Stats::GetAchievementIcon()
* load all achievements icons in memory when loading the achievements schema
2024-08-18 05:00:21 +03:00
a
4d06c010a3 * encapsulate image load/get functions + fix access in current code
* don't add new image resource if current one exists
2024-08-18 04:59:52 +03:00
a
c65e0fc36a fix a bug in Steam_HTTP::SendHTTPRequest() where the ID of the triggered call-result from online requests was completely unrelated to the original request, resulting in timeout 2024-08-18 04:54:21 +03:00
a
afee4c4a72 workaround a problem in Steam_HTTP::SetHTTPRequestHeaderValue() where some games set a cache-control policy which allows only reponses from previous requests 2024-08-18 04:54:14 +03:00
a
d7fb8403d1 bypass ssl verification in steam_http when downloading requests 2024-08-18 04:53:40 +03:00
a
ed1eec0983 fix a buffer overrun bug in steam_http where the buffer size wasn't set correctly 2024-08-18 04:53:34 +03:00
a
50066cc105 verbose curl logging 2024-08-18 04:52:37 +03:00
a
72f4b85924 proper handling for SteamNetworkingSockets007 2024-08-18 04:48:57 +03:00
a
e8d36b3353 implement undocumented interfaces ISteamRemoteStorage015 + ISteamUGC011 2024-08-18 04:48:40 +03:00
a
b8869b60b0 implement undocumented interfaces ISteamNetworkingSockets010 + ISteamNetworkingSockets011 2024-08-18 04:48:31 +03:00
a
a450edfe28 minor missing implementation in CreateInterface() 2024-08-18 04:46:47 +03:00
alex47exe
5616b3b996
Merge branch 'dev' into dev 2024-08-03 23:33:51 +01:00
Detanup01
79ee1dd707
Merge pull request #4 from otavepto/patch-2
Allow disabling the internal functionality which reports an achievement progress for stats that are tied to achievements
2024-08-03 20:54:11 +02:00
a
ee5c2bb4f9 allow disabling the internal functionality which reports an achievement progress for stats that are tied to achievements 2024-08-03 21:16:49 +03:00
a
97032cdc33 fix an inverted condition when parsing the ini option matchmaking_server_list_actual_type in configs.main.ini 2024-08-03 19:23:46 +03:00
a
bf55cecac2 fix a bad print modifier resulting in crash 2024-08-03 16:57:30 +03:00
a
26905df507 * add a new timeline state when game calls Steam_Timeline::SetTimelineGameMode()
* mimic real behavior in `Steam_Timeline::AddTimelineEvent()`
2024-08-03 16:57:30 +03:00
a
450a345333 * add instance of game_stats for servers, client and server instances are requested by games
* delete ended game_stats sessions after 15 seconds to reduce memory usage
2024-08-03 16:57:30 +03:00
a
19b5ea2e23 * add missing callback to steam_friends
* remove duplicate callback triggered in `Steam_Friends::SetPersonaName()`
2024-08-03 16:57:30 +03:00
a
f73d73e1bd * add missing callback to steam_user
* fix a potential problem in `Steam_User::GetUserDataFolder()` where an incomplete path might be copied
2024-08-03 16:57:30 +03:00
a
7b9bc9b3fe fix a scenario where call results might not be triggered in steam_http if the function arg was null 2024-08-03 16:57:30 +03:00
a
c207359bf7 add potentially missing callback to steam_networking_socketserialized 2024-08-03 16:57:30 +03:00
a
f14d9e8bf8 add missing callback to steam_utils 2024-08-03 16:57:30 +03:00
a
3c938208c2 add missing callbacks to steam_ugc 2024-08-03 16:57:30 +03:00
a
55e9ba41a9 add missing callbacks to steam_remote_storage 2024-08-03 16:57:30 +03:00
a
c61294bdcd * fix crash due to invalid usage of union in steam_remote_storage
* fix invalid overlapping of data in steam_remote_storage due to invalid usage of union
2024-08-03 16:57:30 +03:00
a
3369c046a9 fix crash due to invalid usage of union in steam_gamestats 2024-08-03 16:57:30 +03:00
alex47exe
ae979f1edb * [alex47exe] major overhaul of **generate_emu_config** - custom configs, proper ini parsing, better logging and error handling, helper tools:
* add `-def1` ... `-def5` arguments, which can be used to generate your preferred custom config
    if no `-def` argument is provided, `-def1` will be used by default, to automatically copy from the following folders:
    * `.\_DEFAULT\0` ............... essential emu files, like latest GSE dlls (*steam_api.dll* and *steam_api64.dll*)
    * `.\_DEFAULT\1` ............... other GSE files and folders, including default ini files
    * `.\_DEFAULT\<appid>` ... other GSE files and folders, but only for the current `<appid>`, if the folder exists
  * (Windows only) add some useful helper tools, written in *AutoIt3*:
    * **gse_acw_helper.exe** - add the required achievements schema db files for *Achievement Watcher*, if  .\steam_misc\extra_acw\extra_acw.zip file exists (if generated by `generate_emu_config.exe -acw <appid>`)
    * **gse_debug_switch.exe** - automatically switch between release and debug versions of the emulator, if *steam_api.7z* / *steam_api64.7z* file exists (or *steamclient.7z* / *steamclient64.7z*, if you use the steamclient version)
      paths to release and debug files inside 7z, can be customized in .\steam_misc\tools\au3\scripts\gse_debug_switch.ini
    * **gse_generate_interfaces.exe** - simple x64-x86 launcher for *generate_interfaces.exe*
      it also writes all found steam interfaces to CODEX *steam_emu.ini* (if generated by `generate_emu_config -cdx <appid>`)
      make sure to name your original dll to one of these formats, so it can automatically find its interfaces:
      * `valve_api.dll / valve_api64.dll`
      * `steam_api.dll.bak / steam_api64.dll.bak` or `steam_api.dll.org / steam_api64.dll.org`
      * `steam_api.bak / steam_api64.bak` or `steam_api.org / steam_api64.org`
      * `steam_api_orig.dll / steam_api64_orig.dll` or `steam_api_legit.dll / steam_api64_legit.dll`
    * **gse_lobby_connect.exe** - simple x64-x86 launcher for *lobby_connect.exe*
  * new folder structure, compatible with current and future helper tools --- default arguments are `-acw -cdx -clr <appid>`
    NEVER delete `.\steam_misc\app_backup`, `.\steam_misc\app_info`, `.\steam_misc\tools` and `.\steam_settings` folders
    MIGHT need `.\steam_misc\extra_acw` and `.\steam_misc\extra_cdx` for compatibility with Achievement Watcher and CODEX
  * add `-scx` argument to automatically download images / videos for trading cards, backgrounds, badges, emoticons and other tradable items
    unfortunately I couldn't find any direct steam api method to download the files, so I had to write a rudimentary web scrapper to extract the download links from a third-party website, hence the *scx_gen.py* script might need updating in the future if the website design changes
  * download screenshots and videos:
    * download thumbnails for both screenshots and videos, and compress them to `.zip` files
    * screenshots and videos are now numbered from first to last published, as in the Steam store page
    * add `-vids_low` / `-vids_max` arguments to download all videos, in low and / or high quality
  * create / update .\\*top_owners_ids.txt* when .\\*top_owners_ids.html* is present
  * generate controller action sets txt files for all found controller vdf configs, and zip them inside .\steam_misc\app_backup\app_backup.zip
    by default, the emu supports only `xboxone` and `xbox360` controller configs, though if the're are any issues with the default supported controller action sets inside .\steam_settings\controller folder, you could try to unpack and overwrite action sets for other unsupported controller configs
  * (Windows only) add *AdvancedRun* launchers (cmd console + silent) for `.bat` files and `.py` scripts
* **[alex47exe]** major overhaul of **migrate_gse** - uses the same `.\_DEFAULT\0` and `.\_DEFAULT\1` folder structure for default configs
  it can convert old `.txt` format to `.ini` format, minus *branches.json*, which would require using *top_owners_ids.txt* and some login code from **generate_emu_config**, which should actually be used to properly generate the config files, instead of converting from the old `.txt` format
* [alex47exe] *generate_interfaces.exe* - find all Steam Interfaces instead of only old ones
  the emu will ignore the ones it doesn't require, while we'll have the complete list to write it to CODEX *steam_emu.ini*
* [alex47exe] *lobby_connect.exe* - improve cmd console text alignment
* [alex47exe] `mods_img` instead of `mod_images` (better folder consistency), better example for `mods_img`, minor tweaks to `.ini` and `.md` files
2024-07-30 01:21:09 +01:00
Detanup01
fa75c9acb9
fixing STEAMTIMELINE_INTERFACE hopefully 2024-07-25 21:25:30 +02:00
Detanup01
5028aade9e
Fixing Steam Datagram Error. 2024-07-25 15:14:09 +02:00
Detanup01
4c0e1558ea
Adding STEAMTIMELINE_INTERFACE_VERSION check in GetISteamGenericInterface 2024-07-24 12:19:08 +02:00