gse/tools/generate_emu_config/generate_emu_config.py_ini.cfg
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

172 lines
5.8 KiB
INI

[General]
# 0 - Show Advanced Run window
# 1 - Skip Advanced Run window
AutoRun=1
#
# 1 - Run .EXE File
# 2 - ShellExecute - Open the specified file, folder or URL with the default program
# 3 - Command Prompt - Execute command or batch file of Windows Command Prompt (.BAT, .CMD)
# 4 - PowerShell Command - Execute the specified PowerShell command
# 5 - PowerShell Script File - Run the specified PowerShell script (.PS1)
RunMode=3
# open, edit, explore, print - only for RunMode 2
ShellExecuteAction=open
# Program to Run - only for RunMode 1 - for RunMode 2, 3, 4, 5 use CommandLine
EXEFilename=
# Command-line arguments, file to ShellExecute, Command Prompt / PowerShell file to run or Command Prompt / PowerShell command string to execute
# For RunMode 3, 4, 5, DO NOTE that if your .BAT/.CMD/.PS1 file ends with 'pause' and/or you have '& pause'(CMD)/'; pause'(PS) at the end of CommandLine, it is recommended you use CommandWindowMode 2, so that CMD/PS process will close after 'Press any key to continue'
# ... If you wish to run your .BAT/.CMD/.PS1 file or command silent and hidden (with CommandWindowMode 2 and WindowState 0), make sure to remove 'pause' from your .BAT/.CMD/.PS1 file and/or at the end of CommandLine, otherwise CMD/PS process will fail to close automatically
CommandLine=.\bat\generate_emu_config.py_ini.bat & pause
# Start Directory - make sure any paths in CommandLine are relative to the start directory
StartDirectory=.\
# AdvancedRun process will wait in the background until the process executed by AdvancedRun is terminated, 0 - disabled, 1 -enabled
WaitProcess=1
# Process Priority Class:
# 64 - low, 32 - normal, 128 - high, 256 - realtime, 16384 - below normal, 32768 - above normal
PriorityClass=32
# Command Window Mode - only for RunMode 3, 4, 5
# 1 - Keep window opened after executing commands (same as 'CMD /K') - try to avoid this, instead use 'pause' at the end of script or CommandLine, otherwise CMD/PS process will close only with 'exit' command
# 2 - Close window after executing commands (same as 'CMD /C') - try to always use this, with 'pause' at the end of script or CommandLine, so that CMD/PS process will close after 'Press any key to continue', or close automatically if no 'pause' at the end
# DO NOTE that CommandWindowMode 1 is not the same as your .BAT/.CMD/.PS1 file ending with 'pause' and/or having '& pause'(CMD)/'; pause'(PS) at the end of CommandLine
# ... With CommandWindowMode 1 and no 'pause' at the end, CMD/PS window will show current directory and terminate only with 'exit' command
# ... With CommandWindowMode 2 and 'pause' at the end, CMD/PS window will show 'Press any key to continue' and terminate on any key press
CommandWindowMode=1
# Main window state
# 0 - hidden, 1 - normal, 2 - minimized, 3 - maximized
WindowState=1
# Main window position
UseWindowPosition=0
WindowPosition=20,20
# Main window size
UseWindowSize=0
WindowSize=640,400
#
# 1 - Current User - Allow UAC Elevation
# 2 - Current User - Without UAC Elevation
# 3 - Administrator (Force UAC Elevation)
# 4 - SYSTEM User
# 5 - User of the selected process
# 6 - Child of the selected process (Using code injection)
# 7 - Specified username and password
# 8 - TrustedInstaller
# 9 - Another logged-in user
# 10 - Network Service
# 11 - Local Service
RunAs=1
# Selected process name - only for RunAs 5, 6
RunAsProcessName=
# Specified username - only for RunAs 7, 9 (password can't be set in this .CFG file, so it's better to run with /RunAsUserName "username" /RunAsPassword "password" parameters instead)
RunAsUserName=
# Specified domain - only for RunAs 7
RunAsDomain=
#
# Run on remote computer with temporary Windows service, 0 - disabled, 1 - enabled
RunFromService=0
# Remote computer name - only for RunFromService 1
ComputerName=
#
# Use search path to find the program location if the full path is not specified, 0 - disabled, 1 - enabled
UseSearchPath=0
# Parse the environment variables inside the command-line string before passing it to the program
ParseVarCommandLine=0
#
# Use process affinity mask, 0 - disabled, 1 - enabled
UseAffinityMask=0
# Set process affinity mask (space-delimited list) - e.g. '0 1 2 3' process runs only on first 4 cores
AffinityMask=0 1
#
# 0 - Compatibility mode disabled
# 1 - Windows 95
# 2 - Windows 98
# 3 - Windows NT 4.0 SP5
# 4 - Windows 2000
# 5 - Windows XP SP2
# 6 - Windows XP SP3
# 7 - Server 2003 SP1
# 8 - Server 2008 SP1
# 9 - Vista
# 10 - Vista SP1
# 11 - Vista SP2
# 12 - Windows 7
# 13 - Windows 8
OSCompatMode=0
# Use 1 to disable visual themes
CompatDisableVisualThemes=0
# Use 1 to disable desktop composition
CompatDisableDesktopComp=0
# Use 1 to run in 640 x 480 resolution
Compat640480=0
# Use 1 to disable full screen optimizations
CompatDisableFullScreenOpt=0
# 0 - Reduced colors disabled
# 1 - 8-bit, 256 colors
# 2 - 16-bit, 65536 colors
CompatColors=0
# 0 - High DPI scaling override disabled
# 1 - Application
# 2 - System
# 3 - System Enhanced
CompatHighDPI=0
# 1 - Use current system environment variables without any change
# 2 - Merge the following environment variables with the system variables
# 3 - Use only the following environment variables (ignore the system variables)
EnvironmentVariablesMode=1
# Advanced Run window position - only for AutoRun 0
WinPos=2C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF D5 03 00 00 4B 04 00 00 A2 08 00 00 FC 07 00 00
[EnvironmentVariables]
# Advanced Run window position - only for AutoRun 0
WinPos=2C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 78 03 00 00 FC 02 00 00 45 08 00 00 AD 06 00 00
# Number of environment variables to merge - only for EnvironmentVariablesMode 2, 3
Lines=0
# Merge the following environment variables, one by one on each line
Line1=
Line2=
Line3=
Line4=
Line5=
Line6=
Line7=
Line8=
Line9=