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

63 lines
2.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## What is this ?
This is a command line tool to generate complete custom configs, including the `steam_settings` folder for the emu.
You need a Steam account to grab most info, but you can use an anonymous account with limited access to Steam data.
## Usage
```bash
generate_emu_config [options] <app id 1> [app id 2] [app id 3] ...
```
To get all available options, run the tool without any arguments.
---
## Using *my_login.txt*
You'll be asked each time to enter your username and password, but you can automate this prompt.
* You can create a file called `my_login.txt` beside this tool with the following data:
- Your **username** on the **first** line
- Your **password** on the **second** line
Beware of accidentally distributing your login data when using this file !
---
* You can define these environment variables, note that these environment variables will override the file `my_login.txt`:
- `GSE_CFG_USERNAME`
- `GSE_CFG_PASSWORD`
When defining these environment variables in a script, take care of special characters.
Example for Windows:
```shell
set GSE_CFG_USERNAME=my_username
set GSE_CFG_PASSWORD=123abc
generate_emu_config.exe 480
```
Example for Linux:
```shell
export GSE_CFG_USERNAME=my_username
export GSE_CFG_PASSWORD=123abc
./generate_emu_config 480
```
---
## Using *top_owners_ids.txt*
The script uses public Steam IDs (in Steam64 format) of apps/games owners in order to query the required info, such as achievement data.
By default, it has a built-in list of public users IDs, which can be extended by creating a file called `top_owners_ids.txt` beside the script, then adding each new ID in Steam64 format on a separate line. When you login with a non-anonymous account, its ID will be added to the top of the list.
Steam IDs with public profiles that own a lot of games --- https://steamladder.com/ladder/games/
How to generate/update `top_owners_ids.txt` upon running generate_emu_config:
- copy and paste the above address in your web browser
- right click and save web page, html only with the name top_owners_ids.html
- copy and paste `top_owners_ids.html` next to generate_emu_config exe or py
---
## Attributions and credits
* Windows icon by: [FroyoShark](https://www.iconarchive.com/artist/froyoshark.html)
License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/)
Source: [icon archive: Steam Icon](https://www.iconarchive.com/show/enkel-icons-by-froyoshark/Steam-icon.html)