From 32eaea9cdf6d50551cef594b42d613e522c05814 Mon Sep 17 00:00:00 2001 From: alex47exe <17827464+alex47exe@users.noreply.github.com> Date: Sat, 3 Aug 2024 23:21:56 +0100 Subject: [PATCH] fix compatibility with upstream fork, re-enabling auto-merge functionality also corrected Mr_Goldberg's name in some .md files --- post_build/README.experimental.md | 4 +- post_build/README.lobby_connect.md | 4 +- post_build/README.release.md | 2 +- .../configs.app.EXAMPLE.ini | 15 ++- .../configs.main.EXAMPLE.ini | 114 ++++++++++++------ .../configs.overlay.EXAMPLE.ini | 48 +++++--- .../configs.user.EXAMPLE.ini | 18 ++- .../_DEFAULT/1/steam_settings/configs.app.ini | 15 ++- .../1/steam_settings/configs.main.ini | 108 +++++++++++------ .../1/steam_settings/configs.overlay.ini | 45 ++++--- .../1/steam_settings/configs.user.ini | 17 ++- 11 files changed, 256 insertions(+), 134 deletions(-) diff --git a/post_build/README.experimental.md b/post_build/README.experimental.md index 171fe6c4..f02b7c5b 100644 --- a/post_build/README.experimental.md +++ b/post_build/README.experimental.md @@ -6,7 +6,7 @@ This experimental build of the emulator: * Can load extra dlls in memory via `LoadLibraryW()` -Mr.Goldberg's note: +Mr_Goldberg's note: > In this folder is an experimental build of the emulator with code that hooks a few windows socket functions. It should block all connections from the game to non-LAN IPs. This means the game should work without any problems for LAN play (even with VPN LAN as long as you use standard LAN IPs 10.x.x.x, 192.168.x.x, etc...) > It likely doesn't work for some games but it should work for most of them @@ -14,7 +14,7 @@ Mr.Goldberg's note: > Since this blocks all non LAN connections doing things like hosting a cracked server for people on the internet will not work or connecting to a cracked server that's hosted on an internet IP will not work ## Why ? -Mr.Goldberg's note: +Mr_Goldberg's note: > Lots of games seem to connect to analytics services and other crap > Blocking the game from communicating with online IPs without affecting the LAN functionality of this emu is a pain if you try to use a firewall diff --git a/post_build/README.lobby_connect.md b/post_build/README.lobby_connect.md index 4f13601d..95b76578 100644 --- a/post_build/README.lobby_connect.md +++ b/post_build/README.lobby_connect.md @@ -2,8 +2,8 @@ This tool discovers people playing on the network using this emu and lets you launch your game with parameters that will connect you to their games. ## Why ? -Mr.Goldberg's note: -> This is necessary for some games (like stonehearth). It will also let you join games with lobbies that are not public. +Mr_Goldberg's note: +> This is necessary for some games (like Stonehearth). It will also let you join games with lobbies that are not public. > Steam has something called rich presence (the connect key) that lets games tell your friends what command line parameters to run your game with to join their game. diff --git a/post_build/README.release.md b/post_build/README.release.md index 3909289f..701fb94b 100644 --- a/post_build/README.release.md +++ b/post_build/README.release.md @@ -16,7 +16,7 @@ https://gitlab.com/Mr_Goldberg/goldberg_emulator 5. Copy the the example files `.\steam_settings.EXAMPLE\configs.xxx.EXAMPLE.ini` and paste them inside your own `steam_settings` folder, then remove `.EXAMPLE` from their name -Mr.Goldberg's note: +Mr_Goldberg's note: > If the game has DRM (other than Steamworks) you need to remove it first --- diff --git a/post_build/steam_settings.EXAMPLE/configs.app.EXAMPLE.ini b/post_build/steam_settings.EXAMPLE/configs.app.EXAMPLE.ini index 9b0a19b7..ce0f49f5 100644 --- a/post_build/steam_settings.EXAMPLE/configs.app.EXAMPLE.ini +++ b/post_build/steam_settings.EXAMPLE/configs.app.EXAMPLE.ini @@ -4,15 +4,20 @@ [app::general] # by default the emu will report a 'non-beta' branch when the game calls 'Steam_Apps::GetCurrentBetaName()' -# if 1, makes the game/app think we're playing on a beta branch +# 1=make the game/app think we're playing on a beta branch +# default=0 is_beta_branch=0 -# the name of the current branch - this must also exist in 'branches.json' -# otherwise it'll be ignored and the default 'public' branch will be used +# the name of the current branch, this must also exist in 'branches.json' +# otherwise will be ignored by the emu and the default 'public' branch will be used +# default=public branch_name=public [app::dlcs] -# report all DLCs as unlocked; some games check for 'hidden' DLCs, hence this should be set to 1 in that case -# however, other games detect emus by querying for a fake/bad DLC, hence this should be set to 0 in that case +# 1=report all DLCs as unlocked +# 0=report only the DLCs mentioned +# some games check for 'hidden' DLCs, hence this should be set to 1 in that case +# but other games detect emus by querying for a fake/bad DLC, hence this should be set to 0 in that case +# default=1 unlock_all=0 # format: ID=name # 1234=DLCNAME diff --git a/post_build/steam_settings.EXAMPLE/configs.main.EXAMPLE.ini b/post_build/steam_settings.EXAMPLE/configs.main.EXAMPLE.ini index e92b7034..5a6cfa8f 100644 --- a/post_build/steam_settings.EXAMPLE/configs.main.EXAMPLE.ini +++ b/post_build/steam_settings.EXAMPLE/configs.main.EXAMPLE.ini @@ -3,78 +3,118 @@ # ################################################################################ # [main::general] -# generate new app auth ticket +# 1=generate newer version of Auth ticket, used by some modern apps/games +# default=0 new_app_ticket=1 -# generate/embed GC token inside new app ticket +# 1=generate/embed Game Coordinator token inside the new Auth ticket +# default=0 gc_token=1 -# pretend the app is running on a steam deck +# 1=pretend the app is running on a Steam Deck +# default=0 steam_deck=0 -# enable avatar functionality +# 1=enable avatar functionality +# default=0 enable_account_avatar=0 -# prevent Steam_User_Stats::FindLeaderboard() from always succeeding and creating the unknown leaderboard -# default=0, not recommended to change it +# 1=prevent 'Steam_User_Stats::FindLeaderboard()' from always succeeding and creating the unknown leaderboard +# not recommended to enable this +# default=0 disable_leaderboards_create_unknown=0 -# by default, the emu will only save/update stats defined in 'stats.txt', unknown stats requested or updated by the game will be rejected -# set this to 1 to allow unknown stats +# the emu will only save/update stats defined by the user, unknown stats requested or updated by the game will be rejected +# 1=allow unknown stats to be saved/updated +# default=0 allow_unknown_stats=0 -# if 0, whenever a game updates a stat which is tied to an achievement progress, the emu will save that stat progress immediately -# some games will update the stat very frequently (with lower & higher values) resulting in a spam of disk writes or overlay notifications -# set this to 1 to save stat progress only on higher progress value, thus avoiding spam of disk writes or overlay notifications -# this has no impact on the stat itself, only the achievement progress of a stat tied to an achievement progress -# also, this has no impact on the functions which directly change stats, achievements, or achievements progress +# the emu has an internal extra functionality which reports an achievement progress when a stat that's tied to an achievement is updated +# also the progress is saved to disk (usual local storage folder for the current appid) so that external applications can watch these updates +# 1=enable this functionality +# only used internally for a stat that's tied to an achievement, the normal achievement progress requests made by the game are not impacted +# some applications tie many stats to achievements, and update these stats very frequently, causing a spam of disk writes and overlay popups +# in that case you can disable this functionality (set the value to 0), but the stat progress won't be saved or displayed in the overlay +# default=1 +stat_achievement_progress_functionality=1 +# whenever a game updates a stat which is tied to an achievement progress, the emu will save that progress immediately +# but some games will update the stat very frequently (with lower & higher values) resulting in a spam of disk writes or overlay notifications +# 0=save any stat achievement progress value (higher or lower) +# 1=save stat achievement progress value only if it is higher than the current one +# this has no impact on the stat itself, only the achievement progress +# also has no impact on the functions which directly change stats, achievements, or achievements progress +# default=1 save_only_higher_stat_achievement_progress=1 -# synchronize user stats/achievements with game servers as soon as possible instead of caching them until the next call to `Steam_RunCallbacks()` -# default=0, not recommended to change it +# 1=synchronize user stats/achievements with game servers as soon as possible instead of caching them until the next call to 'Steam_RunCallbacks()' +# not recommended to enable this +# default=0 immediate_gameserver_stats=0 -# use the proper type of the server list (internet, friends, etc...) when requested by the game -# otherwise, the emu will always return the type 'LAN server' -# default=0, not recommended to change it +# 1=use the proper type of the server list (internet, friends, etc...) when requested by the game +# 0=always return the type of the server list as 'LAN server' +# not recommended to enable this +# default=0 matchmaking_server_list_actual_type=0 -# grab the server details for match making using an actual server query -# default=0, not recommended to change it +# 1=grab the server details for match making using an actual server query +# 0=use the info from the local network messages shared between client/server +# not recommended to enable this, currently breaks some games +# default=0 matchmaking_server_details_via_source_query=0 # very basic crash logger/printer # this is intended to debug some annoying scenarios, and best used with the debug build of the emu -crash_printer_location=./EMU_CRASHES.txt +# default= +crash_printer_location=./path/relative/to/dll/crashes.txt [main::connectivity] -# prevent hooking OS networking APIs and allow any external requests -# only used by the experimental builds on Windows -disable_lan_only=1 -# disable all steam networking interface functionality - this won't prevent games/apps from making external requests +# 1=prevent hooking OS networking APIs and allow any external requests +# only used by the experimental builds on **Windows** +# default=0 +disable_lan_only=0 +# 1=disable all Steam networking interface functionality +# this won't prevent games/apps from making external requests # networking related functionality like lobbies or those that launch a server in the background will not work +# default=0 disable_networking=0 # change the UDP/TCP port the emulator listens on, you should probably not change this because everyone needs to use the same port or you won't find yourselves on the network +# default=47584 listen_port=47584 -# pretend steam is running in offline mode; some games that connect to online servers might only work if the steam emu behaves like steam is in offline mode +# 1=pretend Steam is running in offline mode, mainly affects the function 'ISteamUser::BLoggedOn()' +# Some games that connect to online servers might only work if the Steam emu behaves like Steam is in offline mode +# default=0 offline=0 -# prevent sharing stats and achievements with any game server, also disables the interface ISteamGameServerStats +# 1=prevent sharing stats and achievements with any game server, this also disables the interface 'ISteamGameServerStats' +# default=0 disable_sharing_stats_with_gameserver=0 -# do not send server details to the server browser, only works for game servers +# 1=do not send server details to the server browser, only works for game servers +# default=0 disable_source_query=0 -# enable sharing leaderboards scores with people playing the same game on the same network +# 1=enable sharing leaderboards scores with people playing the same game on the same network +# not ideal and synchronization isn't perfect +# default=0 share_leaderboards_over_network=0 -# prevent lobby creation in steam matchmaking interface +# 1=prevent lobby creation in the Steam matchmaking interface +# default=0 disable_lobby_creation=0 -# attempt to download external HTTP(S) requests made via Steam_HTTP::SendHTTPRequest() inside "steam_settings/http/" +# 1=attempt to download external HTTP(S) requests made via 'Steam_HTTP::SendHTTPRequest()' inside 'steam_settings/http/' folder # make sure to: # * set disable_lan_only=1 # * set disable_networking=0 # this will **not** work if the app is using native/OS web APIs -download_steamhttp_requests=1 +# default=0 +download_steamhttp_requests=0 ############################################ # mostly workarounds for specific problems # ############################################ [main::misc] -# force SetAchievement() to always return true +# 1=force 'ISteamUserStats::SetAchievement()' to always return true +# this is a workaround for some games that otherwise won't work +# default=0 achievements_bypass=0 -# force the function Steam_HTTP::SendHTTPRequest() to always succeed +# force the function 'Steam_HTTP::SendHTTPRequest()' to always succeed +# default=0 force_steamhttp_success=0 -# env var SteamOverlayGameId breaks Steam Input when the game is added to Steam as a non-steam game -disable_steamoverlaygameid_env_var=1 -# add many Steam apps to the list of owned DLCs and the emu's list of installed app IDs, useful for many Source-based games +# env var 'SteamOverlayGameId' breaks Steam Input when the game is added to Steam as a non-steam game +# 1=don't write this env var, allowing Steam Input to work +# default=0 +disable_steamoverlaygameid_env_var=0 +# 1=add many Steam apps to the list of owned DLCs and the emu's list of installed app IDs +# useful for many Source-based games # https://developer.valvesoftware.com/wiki/Steam_Application_IDs # https://developer.valvesoftware.com/wiki/Dedicated_Servers_List +# default=0 enable_steam_preowned_ids=0 diff --git a/post_build/steam_settings.EXAMPLE/configs.overlay.EXAMPLE.ini b/post_build/steam_settings.EXAMPLE/configs.overlay.EXAMPLE.ini index cd647136..ab64bec1 100644 --- a/post_build/steam_settings.EXAMPLE/configs.overlay.EXAMPLE.ini +++ b/post_build/steam_settings.EXAMPLE/configs.overlay.EXAMPLE.ini @@ -6,34 +6,44 @@ # ################################################################################ # [overlay::general] -# enable the experimental overlay, might cause crashes -enable_experimental_overlay=1 +# 1=enable the experimental overlay, might cause crashes +# default=0 +enable_experimental_overlay=0 # amount of time to wait before attempting to detect and hook the renderer (DirectX, OpenGL, Vulkan, etc...) # default=0 hook_delay_sec=0 # timeout for the renderer detector # default=15 renderer_detector_timeout_sec=15 -# disable the achievements notifications +# 1=disable the achievements notifications +# default=0 disable_achievement_notification=0 -# disable friends invitations and messages notifications +# 1=disable friends invitations and messages notifications +# default=0 disable_friend_notification=0 -# disable showing notifications for achievements progress +# 1=disable showing notifications for achievements progress +# default=0 disable_achievement_progress=0 -# disable any warning in the overlay +# 1=disable any warning in the overlay +# default=0 disable_warning_any=0 -# disable the bad app ID warning in the overlay +# 1=disable the bad app ID warning in the overlay +# default=0 disable_warning_bad_appid=0 -# disable the local_save warning in the overlay +# 1=disable the local_save warning in the overlay +# default=0 disable_warning_local_save=0 [overlay::appearance] -# load custom TrueType font from an absolute or relative path -# relative paths will be looked up inside the local folder 'steam_settings/fonts' first, -# if not found, it will be looked up inside the global folder 'GSE Settings/settings/fonts' -#Font_Override=Roboto-Medium.ttf -# global font size - for built-in font, multiple of 16 is recommended, e.g. 16, 32, etc -Font_Size=16.0 +# load custom TrueType font from a path, it could be absolute, or relative +# relative paths will be looked up inside the local folder 'steam_settings/fonts/' first, +# if that wasn't found, it will be looked up inside the global folder 'GSE Saves/settings/fonts/' +# default= +Font_Override=Roboto-Medium.ttf +# global font size +# for built-in font, multiple of 16 is recommended, e.g. 16 32... +# default=16.0 +Font_Size=20.0 # achievement icon size Icon_Size=64.0 @@ -50,26 +60,26 @@ Notification_A=1.0 # notifications corners roundness Notification_Rounding=10.0 - # horizontal (x) and vertical (y) margins for the notifications Notification_Margin_x=5.0 Notification_Margin_y=5.0 -# duration of notification animation in seconds - set to 0 to disable +# duration/timing for various notification types (in seconds) +# duration of notification animation in seconds. Set to 0 to disable Notification_Animation=0.35 - # duration of achievement progress indication Notification_Duration_Progress=6.0 # duration of achievement unlocked -Notification_Duration_Achievement=6.0 +Notification_Duration_Achievement=7.0 # duration of friend invitation Notification_Duration_Invitation=8.0 # duration of chat message Notification_Duration_Chat=4.0 # format for the achievement unlock date/time, limited to 79 characters -# if the output formatted string exceeded this limit, the built-in format will be used +# if the output formatted string exceeded this limit, the builtin format will be used # look for the format here: https://en.cppreference.com/w/cpp/chrono/c/strftime +# default=%Y/%m/%d - %H:%M:%S Achievement_Unlock_Datetime_Format=%Y/%m/%d - %H:%M:%S # main background when you press shift+tab diff --git a/post_build/steam_settings.EXAMPLE/configs.user.EXAMPLE.ini b/post_build/steam_settings.EXAMPLE/configs.user.EXAMPLE.ini index 81744662..8ff22637 100644 --- a/post_build/steam_settings.EXAMPLE/configs.user.EXAMPLE.ini +++ b/post_build/steam_settings.EXAMPLE/configs.user.EXAMPLE.ini @@ -4,10 +4,14 @@ [user::general] # user account name -account_name=goldberg -# Steam64 format +# default=gse orca +account_name=gse orca +# your account ID in Steam64 format +# if the specified ID is invalid, the emu will ignore it and generate a proper one +# default=randomly generated by the emu only once and saved in the global settings account_steamid=76561197960287930 # the language reported to the app/game +# this must exist in 'supported_languages.txt', otherwise it will be ignored by the emu # look for the column 'API language code' here: https://partner.steamgames.com/doc/store/localization/languages # default=english language=english @@ -18,10 +22,12 @@ ip_country=US [user::saves] # when this is set, it will force the emu to use the specified location instead of the default global location -# path could be absolute, or relative to the location of the .dll/.so, leading and trailing whitespaces are trimmed +# path could be absolute, or relative to the location of the .dll/.so +# leading and trailing whitespaces are trimmed # when this option is used, the global settings folder is completely ignored, allowing a full portable behavior -#local_save_path=GSE Saves -# name of the default global folder used to store save data, leading and trailing whitespaces are trimmed +# default= +local_save_path=./path/relative/to/dll +# name of the base folder used to store save data, leading and trailing whitespaces are trimmed +# only useful if 'local_save_path' isn't used # default=GSE Saves saves_folder_name=GSE Saves - diff --git a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.app.ini b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.app.ini index 9b0a19b7..ce0f49f5 100644 --- a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.app.ini +++ b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.app.ini @@ -4,15 +4,20 @@ [app::general] # by default the emu will report a 'non-beta' branch when the game calls 'Steam_Apps::GetCurrentBetaName()' -# if 1, makes the game/app think we're playing on a beta branch +# 1=make the game/app think we're playing on a beta branch +# default=0 is_beta_branch=0 -# the name of the current branch - this must also exist in 'branches.json' -# otherwise it'll be ignored and the default 'public' branch will be used +# the name of the current branch, this must also exist in 'branches.json' +# otherwise will be ignored by the emu and the default 'public' branch will be used +# default=public branch_name=public [app::dlcs] -# report all DLCs as unlocked; some games check for 'hidden' DLCs, hence this should be set to 1 in that case -# however, other games detect emus by querying for a fake/bad DLC, hence this should be set to 0 in that case +# 1=report all DLCs as unlocked +# 0=report only the DLCs mentioned +# some games check for 'hidden' DLCs, hence this should be set to 1 in that case +# but other games detect emus by querying for a fake/bad DLC, hence this should be set to 0 in that case +# default=1 unlock_all=0 # format: ID=name # 1234=DLCNAME diff --git a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.main.ini b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.main.ini index e92b7034..e085ee60 100644 --- a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.main.ini +++ b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.main.ini @@ -3,78 +3,118 @@ # ################################################################################ # [main::general] -# generate new app auth ticket +# 1=generate newer version of Auth ticket, used by some modern apps/games +# default=0 new_app_ticket=1 -# generate/embed GC token inside new app ticket +# 1=generate/embed Game Coordinator token inside the new Auth ticket +# default=0 gc_token=1 -# pretend the app is running on a steam deck +# 1=pretend the app is running on a Steam Deck +# default=0 steam_deck=0 -# enable avatar functionality +# 1=enable avatar functionality +# default=0 enable_account_avatar=0 -# prevent Steam_User_Stats::FindLeaderboard() from always succeeding and creating the unknown leaderboard -# default=0, not recommended to change it +# 1=prevent 'Steam_User_Stats::FindLeaderboard()' from always succeeding and creating the unknown leaderboard +# not recommended to enable this +# default=0 disable_leaderboards_create_unknown=0 -# by default, the emu will only save/update stats defined in 'stats.txt', unknown stats requested or updated by the game will be rejected -# set this to 1 to allow unknown stats +# the emu will only save/update stats defined by the user, unknown stats requested or updated by the game will be rejected +# 1=allow unknown stats to be saved/updated +# default=0 allow_unknown_stats=0 -# if 0, whenever a game updates a stat which is tied to an achievement progress, the emu will save that stat progress immediately -# some games will update the stat very frequently (with lower & higher values) resulting in a spam of disk writes or overlay notifications -# set this to 1 to save stat progress only on higher progress value, thus avoiding spam of disk writes or overlay notifications -# this has no impact on the stat itself, only the achievement progress of a stat tied to an achievement progress -# also, this has no impact on the functions which directly change stats, achievements, or achievements progress +# the emu has an internal extra functionality which reports an achievement progress when a stat that's tied to an achievement is updated +# also the progress is saved to disk (usual local storage folder for the current appid) so that external applications can watch these updates +# 1=enable this functionality +# only used internally for a stat that's tied to an achievement, the normal achievement progress requests made by the game are not impacted +# some applications tie many stats to achievements, and update these stats very frequently, causing a spam of disk writes and overlay popups +# in that case you can disable this functionality (set the value to 0), but the stat progress won't be saved or displayed in the overlay +# default=1 +stat_achievement_progress_functionality=1 +# whenever a game updates a stat which is tied to an achievement progress, the emu will save that progress immediately +# but some games will update the stat very frequently (with lower & higher values) resulting in a spam of disk writes or overlay notifications +# 0=save any stat achievement progress value (higher or lower) +# 1=save stat achievement progress value only if it is higher than the current one +# this has no impact on the stat itself, only the achievement progress +# also has no impact on the functions which directly change stats, achievements, or achievements progress +# default=1 save_only_higher_stat_achievement_progress=1 -# synchronize user stats/achievements with game servers as soon as possible instead of caching them until the next call to `Steam_RunCallbacks()` -# default=0, not recommended to change it +# 1=synchronize user stats/achievements with game servers as soon as possible instead of caching them until the next call to 'Steam_RunCallbacks()' +# not recommended to enable this +# default=0 immediate_gameserver_stats=0 -# use the proper type of the server list (internet, friends, etc...) when requested by the game -# otherwise, the emu will always return the type 'LAN server' -# default=0, not recommended to change it +# 1=use the proper type of the server list (internet, friends, etc...) when requested by the game +# 0=always return the type of the server list as 'LAN server' +# not recommended to enable this +# default=0 matchmaking_server_list_actual_type=0 -# grab the server details for match making using an actual server query -# default=0, not recommended to change it +# 1=grab the server details for match making using an actual server query +# 0=use the info from the local network messages shared between client/server +# not recommended to enable this, currently breaks some games +# default=0 matchmaking_server_details_via_source_query=0 # very basic crash logger/printer # this is intended to debug some annoying scenarios, and best used with the debug build of the emu +# default= crash_printer_location=./EMU_CRASHES.txt [main::connectivity] -# prevent hooking OS networking APIs and allow any external requests -# only used by the experimental builds on Windows +# 1=prevent hooking OS networking APIs and allow any external requests +# only used by the experimental builds on **Windows** +# default=0 disable_lan_only=1 -# disable all steam networking interface functionality - this won't prevent games/apps from making external requests +# 1=disable all Steam networking interface functionality +# this won't prevent games/apps from making external requests # networking related functionality like lobbies or those that launch a server in the background will not work +# default=0 disable_networking=0 # change the UDP/TCP port the emulator listens on, you should probably not change this because everyone needs to use the same port or you won't find yourselves on the network +# default=47584 listen_port=47584 -# pretend steam is running in offline mode; some games that connect to online servers might only work if the steam emu behaves like steam is in offline mode +# 1=pretend Steam is running in offline mode, mainly affects the function 'ISteamUser::BLoggedOn()' +# Some games that connect to online servers might only work if the Steam emu behaves like Steam is in offline mode +# default=0 offline=0 -# prevent sharing stats and achievements with any game server, also disables the interface ISteamGameServerStats +# 1=prevent sharing stats and achievements with any game server, this also disables the interface 'ISteamGameServerStats' +# default=0 disable_sharing_stats_with_gameserver=0 -# do not send server details to the server browser, only works for game servers +# 1=do not send server details to the server browser, only works for game servers +# default=0 disable_source_query=0 -# enable sharing leaderboards scores with people playing the same game on the same network +# 1=enable sharing leaderboards scores with people playing the same game on the same network +# not ideal and synchronization isn't perfect +# default=0 share_leaderboards_over_network=0 -# prevent lobby creation in steam matchmaking interface +# 1=prevent lobby creation in the Steam matchmaking interface +# default=0 disable_lobby_creation=0 -# attempt to download external HTTP(S) requests made via Steam_HTTP::SendHTTPRequest() inside "steam_settings/http/" +# 1=attempt to download external HTTP(S) requests made via 'Steam_HTTP::SendHTTPRequest()' inside 'steam_settings/http/' folder # make sure to: # * set disable_lan_only=1 # * set disable_networking=0 # this will **not** work if the app is using native/OS web APIs -download_steamhttp_requests=1 +# default=0 +download_steamhttp_requests=0 ############################################ # mostly workarounds for specific problems # ############################################ [main::misc] -# force SetAchievement() to always return true +# 1=force 'ISteamUserStats::SetAchievement()' to always return true +# this is a workaround for some games that otherwise won't work +# default=0 achievements_bypass=0 -# force the function Steam_HTTP::SendHTTPRequest() to always succeed +# force the function 'Steam_HTTP::SendHTTPRequest()' to always succeed +# default=0 force_steamhttp_success=0 -# env var SteamOverlayGameId breaks Steam Input when the game is added to Steam as a non-steam game +# env var 'SteamOverlayGameId' breaks Steam Input when the game is added to Steam as a non-steam game +# 1=don't write this env var, allowing Steam Input to work +# default=1 disable_steamoverlaygameid_env_var=1 -# add many Steam apps to the list of owned DLCs and the emu's list of installed app IDs, useful for many Source-based games +# 1=add many Steam apps to the list of owned DLCs and the emu's list of installed app IDs +# useful for many Source-based games # https://developer.valvesoftware.com/wiki/Steam_Application_IDs # https://developer.valvesoftware.com/wiki/Dedicated_Servers_List +# default=0 enable_steam_preowned_ids=0 diff --git a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.overlay.ini b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.overlay.ini index 8e282a59..2c2c01ab 100644 --- a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.overlay.ini +++ b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.overlay.ini @@ -6,7 +6,8 @@ # ################################################################################ # [overlay::general] -# enable the experimental overlay, might cause crashes +# 1=enable the experimental overlay, might cause crashes +# default=1 enable_experimental_overlay=1 # amount of time to wait before attempting to detect and hook the renderer (DirectX, OpenGL, Vulkan, etc...) # default=0 @@ -14,25 +15,34 @@ hook_delay_sec=0 # timeout for the renderer detector # default=15 renderer_detector_timeout_sec=15 -# disable the achievements notifications +# 1=disable the achievements notifications +# default=0 disable_achievement_notification=0 -# disable friends invitations and messages notifications +# 1=disable friends invitations and messages notifications +# default=0 disable_friend_notification=0 -# disable showing notifications for achievements progress +# 1=disable showing notifications for achievements progress +# default=0 disable_achievement_progress=0 -# disable any warning in the overlay +# 1=disable any warning in the overlay +# default=0 disable_warning_any=0 -# disable the bad app ID warning in the overlay +# 1=disable the bad app ID warning in the overlay +# default=0 disable_warning_bad_appid=0 -# disable the local_save warning in the overlay +# 1=disable the local_save warning in the overlay +# default=0 disable_warning_local_save=0 [overlay::appearance] -# load custom TrueType font from an absolute or relative path -# relative paths will be looked up inside the local folder 'steam_settings/fonts' first, -# if not found, it will be looked up inside the global folder 'GSE Settings/settings/fonts' -#Font_Override=Roboto-Medium.ttf -# global font size - for built-in font, multiple of 16 is recommended, e.g. 16, 32, etc +# load custom TrueType font from a path, it could be absolute, or relative +# relative paths will be looked up inside the local folder 'steam_settings/fonts/' first, +# if that wasn't found, it will be looked up inside the global folder 'GSE Saves/settings/fonts/' +# default= +Font_Override= +# global font size +# for built-in font, multiple of 16 is recommended, e.g. 16 32... +# default=16.0 Font_Size=16.0 # achievement icon size @@ -50,26 +60,26 @@ Notification_A=1.0 # notifications corners roundness Notification_Rounding=10.0 - # horizontal (x) and vertical (y) margins for the notifications Notification_Margin_x=5.0 Notification_Margin_y=5.0 -# duration of notification animation in seconds - set to 0 to disable +# duration/timing for various notification types (in seconds) +# duration of notification animation in seconds. Set to 0 to disable Notification_Animation=0.35 - # duration of achievement progress indication Notification_Duration_Progress=6.0 # duration of achievement unlocked -Notification_Duration_Achievement=6.0 +Notification_Duration_Achievement=7.0 # duration of friend invitation Notification_Duration_Invitation=8.0 # duration of chat message Notification_Duration_Chat=4.0 # format for the achievement unlock date/time, limited to 79 characters -# if the output formatted string exceeded this limit, the built-in format will be used +# if the output formatted string exceeded this limit, the builtin format will be used # look for the format here: https://en.cppreference.com/w/cpp/chrono/c/strftime +# default=%Y/%m/%d - %H:%M:%S Achievement_Unlock_Datetime_Format=%Y/%m/%d - %H:%M:%S # main background when you press shift+tab @@ -109,4 +119,3 @@ PosInvitation=top_right # position of chat messages PosChatMsg=top_center # ############################# # - diff --git a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.user.ini b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.user.ini index b22a1af7..b903c997 100644 --- a/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.user.ini +++ b/tools/generate_emu_config/_DEFAULT/1/steam_settings/configs.user.ini @@ -4,10 +4,14 @@ [user::general] # user account name -account_name=goldberg -# Steam64 format +# default=gse_user +account_name=gse_user +# your account ID in Steam64 format +# if the specified ID is invalid, the emu will ignore it and generate a proper one +# default=randomly generated by the emu only once and saved in the global settings account_steamid=76561197960287930 # the language reported to the app/game +# this must exist in 'supported_languages.txt', otherwise it will be ignored by the emu # look for the column 'API language code' here: https://partner.steamgames.com/doc/store/localization/languages # default=english language=english @@ -18,9 +22,12 @@ ip_country=US [user::saves] # when this is set, it will force the emu to use the specified location instead of the default global location -# path could be absolute, or relative to the location of the .dll/.so, leading and trailing whitespaces are trimmed +# path could be absolute, or relative to the location of the .dll/.so +# leading and trailing whitespaces are trimmed # when this option is used, the global settings folder is completely ignored, allowing a full portable behavior -#local_save_path=GSE Saves -# name of the default global folder used to store save data, leading and trailing whitespaces are trimmed +# default= +local_save_path= +# name of the base folder used to store save data, leading and trailing whitespaces are trimmed +# only useful if 'local_save_path' isn't used # default=GSE Saves saves_folder_name=GSE Saves