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
..

How to use it:

Copy both files

  • steamclient.so
  • steamclient64.so

beside the script and specify the required input, either from command-line or via the configuration files: ldr_*.txt

It is recommended to create a separate setup for each game via the config files
to avoid specifying the command-line each time

Command line arguments will override the values in the configuration files,
with an exception for the arguments passed to the executable, both specified
in the configuration file and via command line will be passed to the executable


Command line arguments:

  • -exe: path to the executable
  • -appid: numeric app ID
  • -cwd: (optional) working directory to switch to when running the executable
  • -rt: (optional) path to Steam runtime script
    • ex1: ~/.steam/debian-installation/ubuntu12_64/steam-runtime-heavy.sh
    • ex2: ~/.steam/debian-installation/ubuntu12_64/steam-runtime-heavy/run.sh
    • ex3: ~/.steam/debian-installation/ubuntu12_32/steam-runtime/run.sh
    • ex4: ~/.steam/steam_runtime/run.sh
  • --: (optional) everything after these 2 dashes will be passed directly to the executable"

Note that any unknown args will be passed to the executable

Examples:

  • ./steamclient_loader.sh -exe ~/games/mygame/executable -appid 480
  • ./steamclient_loader.sh -exe ~/games/mygame/executable -appid 480 -- -opengl
  • ./steamclient_loader.sh -exe ~/games/mygame/executable -appid 480 -cwd ~/games/mygame/subdir
  • ./steamclient_loader.sh -exe ~/games/mygame/executable -appid 480 -rt ~/.steam/debian-installation/ubuntu12_64/steam-runtime-heavy/run.sh

Configuration files:

Additionally, you can set these values in the equivalent configuration files,
everything on a single line for each file, except ldr_cmd.txt:

  • ldr_exe.txt: specify the executable path in this file
  • ldr_appid.txt: specify the app ID in this file
  • ldr_cwd.txt: (optional) specify the working directory of the executable path in this file
  • ldr_steam_rt.txt: (optional) specify the path of the Steam runtime script in this file
  • ldr_cmd.txt: (optional) specify additional arguments that will be passed to the executable in this file,
    this file has the exception that the arguments must be specified on separate lines