mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2025-01-12 02:19:31 +08:00
updated changelog + some readmes
This commit is contained in:
parent
6249d7ca4d
commit
44f4e400de
39
CHANGELOG.md
39
CHANGELOG.md
@ -1,17 +1,36 @@
|
|||||||
* a new experimental library to patch Stub drm v3.1 in memory, check the readme of the cold client loader
|
## 2024/1/20
|
||||||
* cold client loader can now inject dlls, also it can force inject the `steamclient(64).dll` library
|
|
||||||
* cold client loader can inject the dlls according to a user sepcified order, check the readme and the provided example
|
* **[Detanup01]** added implementation for `Steam_Remote_Storage::EnumerateUserSubscribedFiles()` +
|
||||||
* cold client loader will now treat relative paths as relative to its own path
|
mods files handles in `Steam_Remote_Storage::UGCDownload()` + `Steam_Remote_Storage::UGCDownloadToLocation()`
|
||||||
* cold client loader now doesn't need an explicit setting for the `ExeRunDir`, by default it would be the folder of the exe
|
which makes mods now work for many games
|
||||||
* in cold client loader, the option `ResumeByDebugger` is now available in the release build
|
* **[Kola124]** enhanced the settings parser to detect primary and preview mod files sizes automatically +
|
||||||
* cold client loader will display a nag about architecture difference if for example the app was 32-bit and the loader was 64-bit,
|
use the base Steam URL by default for workshop URL + auto calculate the mod `score` from up/down votes
|
||||||
this could be disabled via the setting `IgnoreLoaderArchDifference=1`
|
also thanks to **[BTFighter]** for providing logs
|
||||||
|
* **Breaking change** mod preview image file must exist in `steam_settings\mod_images\<MOD_ID>`
|
||||||
|
* an enhancement to the settings parser to attempt to auto detect mods when `mods.json` is not present, with the same behavior as when the json file was created.
|
||||||
|
this works for mods with only 1 primary file and only 1 preview file
|
||||||
|
* fixed the generated path of mod `preview_url`, previously it would contain back slashes `\` on Windows
|
||||||
|
* use last week epoch as the default time for mods dates (created, added, etc...)
|
||||||
|
* make sure the mod path is always normalized and absolute, required by some APIs
|
||||||
|
* `Steam UGC`: implement `SetUserItemVote()`, `GetUserItemVote()`, `AddItemToFavorites()`, `RemoveItemFromFavorites()`,
|
||||||
|
favorite mods list are now saved in `favorites.txt` in the user save data folder
|
||||||
|
* cold client loader can now inject user dlls, and force inject the `steamclient(64).dll` library,
|
||||||
|
also you can control the injection order via a file `load_order.txt`, check its readme and the provided example
|
||||||
|
* a new experimental dll (which must be injected first) to patch Stub drm v3.1 in memory, check the injection example of the cold client loader
|
||||||
|
* cold client loader will now treat relative paths as relative to its own path, previously it used the current active directory
|
||||||
|
* cold client loader no longer needs an explicit setting for the `ExeRunDir`, by default it would be the folder of the exe
|
||||||
|
* in cold client loader, the option `ResumeByDebugger` is now available for the release build
|
||||||
|
* cold client loader is now built for 32-bit and 64-bit separately, and will display a nag about architecture difference if for example the app was 32-bit and the loader was 64-bit, this could be disabled via the setting `IgnoreLoaderArchDifference=1`
|
||||||
* the cold client loader will output useful debug info when the debug build is used
|
* the cold client loader will output useful debug info when the debug build is used
|
||||||
|
* added a very basic crashes logger/printer, enabled by creating a file called `crash_printer_location.txt` inside the `steam_settings` folder, check README.realease.md for more details
|
||||||
* fixed a problem in the overlay which would cause a crash for the guest player when an invitation was sent
|
* fixed a problem in the overlay which would cause a crash for the guest player when an invitation was sent
|
||||||
|
* `Steam UGC`: make sure returned mod folder from `GetItemInstallInfo()` is null terminated, previously some apps would get a bad malformed string because of this
|
||||||
|
* `Steam_RemoteStorage`: very basic implementation for `GetQueryUGCNumTags()`, `GetQueryUGCTag()`, `GetQueryUGCTagDisplayName()`
|
||||||
|
* new function in local storage to get list of folders at root level, given some path
|
||||||
* imitate how the DOS Stub is manipulated during/after the build
|
* imitate how the DOS Stub is manipulated during/after the build
|
||||||
* some fixes to the win build script + use the undocumented linker flag `/emittoolversioninfo:no` to prevent adding the MSVC Rich Header
|
* some fixes to the win build script + use the undocumented linker flag `/emittoolversioninfo:no` to prevent adding the MSVC Rich Header
|
||||||
* added a very basic crashes logger/printer, enabled by creating a file called `crash_printer_location.txt` inside the `steam_settings` folder,
|
* debug messages are now mostly scoped, ex: `Steam_Ugc::XXX`
|
||||||
check README.realease.md for more details
|
* added a bunch of helper functions, `common_helpers::XXX` + `pe_helpers::XXX`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -20,15 +20,15 @@ You do not need to create a `steam_interfaces.txt` file for the `steamclient` ve
|
|||||||
2. Edit `ColdClientLoader.ini` and specify:
|
2. Edit `ColdClientLoader.ini` and specify:
|
||||||
* `AppId`: the app ID
|
* `AppId`: the app ID
|
||||||
* `Exe`: the path to the game's executable/launcher, either full path or relative to this loader
|
* `Exe`: the path to the game's executable/launcher, either full path or relative to this loader
|
||||||
* `ExeRunDir`: generally this must be set to the folder containing the game's exe, if left empty then it will be automatically set to the folder containing the game's exe.
|
* `ExeRunDir` *(optional)*: generally this must be set to the folder containing the game's exe, if left empty then it will be automatically set to the folder containing the game's exe.
|
||||||
* `ExeCommandLine` additional args to pass to the exe, example: `-dx11 -windowed`
|
* `ExeCommandLine` *(optional)*: additional args to pass to the exe, example: `-dx11 -windowed`
|
||||||
Optionally you can specify a different location for `steamclient(64).dll`:
|
Optionally you can specify a different location for `steamclient(64).dll`:
|
||||||
* `SteamClientDll`: path to `steamclient.dll`, either full path or relative to this loader
|
* `SteamClientDll`: path to `steamclient.dll`, either full path or relative to this loader
|
||||||
* `SteamClientDll`: path to `steamclient(64).dll`, either full path or relative to this loader
|
* `SteamClient64Dll`: path to `steamclient(64).dll`, either full path or relative to this loader
|
||||||
* `ForceInjectSteamClient`: force inject `steamclient(64).dll` instead of letting the app load it automatically
|
* `ForceInjectSteamClient`: force inject `steamclient(64).dll` instead of letting the app load it automatically
|
||||||
* `ResumeByDebugger`: setting this to `1` or `y` or `true` will prevent the loader from calling `ResumeThread()` on the main thread after spawning the .exe, and it will display a mesage with the process ID (PID) so you attach your debugger on it.
|
* `ResumeByDebugger`: setting this to `1` or `y` or `true` will prevent the loader from calling `ResumeThread()` on the main thread after spawning the .exe, and it will display a mesage with the process ID (PID) so you attach your debugger on it.
|
||||||
Note that you have to resume the main thread from the debugger after attaching, also the entry breakpoint may not be set automatically, but you can do that manually.
|
Note that you have to resume the main thread from the debugger after attaching, also the entry breakpoint may not be set automatically, but you can do that manually.
|
||||||
* `DllsToInjectFolder`: path to a folder containing dlls to force inject into the app upon start,
|
* `DllsToInjectFolder` *(optional)*: path to a folder containing dlls to force inject into the app upon start,
|
||||||
the loader will attempt to detect the dll architecture (32 or 64 bit), if it didn't match the architecture of the exe, then it will ignored
|
the loader will attempt to detect the dll architecture (32 or 64 bit), if it didn't match the architecture of the exe, then it will ignored
|
||||||
* `IgnoreInjectionError`: setting this to `1` or `y` or `true` will prevent the loader from displaying an error message when a dll injection fails
|
* `IgnoreInjectionError`: setting this to `1` or `y` or `true` will prevent the loader from displaying an error message when a dll injection fails
|
||||||
* `IgnoreLoaderArchDifference`: don't display an error message if the architecture of the loader is different from the app.
|
* `IgnoreLoaderArchDifference`: don't display an error message if the architecture of the loader is different from the app.
|
||||||
|
@ -1 +1 @@
|
|||||||
Put here the files whose names are specified by the JSON key "preview_filename" inside mods.json
|
Put here the file whose name is specified by the JSON key "preview_filename" inside mods.json
|
@ -1,4 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
"9422": {
|
||||||
|
"title": "Some Workshop Item",
|
||||||
|
"description": "This is the prefered way of specifying mod details, primary file must exist in steam_settings/mods/9422 (along with any other mod files), and preview file must exist in steam_settings/mod_images/9422",
|
||||||
|
"primary_filename": "metadata.json",
|
||||||
|
"preview_filename": "thumbnail.png"
|
||||||
|
},
|
||||||
|
|
||||||
"111111111": {
|
"111111111": {
|
||||||
"title": "Example Workshop Item",
|
"title": "Example Workshop Item",
|
||||||
"description": "Example Workshop Item with all Details",
|
"description": "Example Workshop Item with all Details",
|
||||||
@ -22,7 +29,7 @@
|
|||||||
|
|
||||||
"222222222": {
|
"222222222": {
|
||||||
"title": "Example Workshop Item",
|
"title": "Example Workshop Item",
|
||||||
"description": "Example Workshop Item with all Details",
|
"description": "Example Workshop Item with some Details",
|
||||||
"preview_url": "https://commons.wikimedia.org/wiki/File:Tree_in_Mississippi.jpg",
|
"preview_url": "https://commons.wikimedia.org/wiki/File:Tree_in_Mississippi.jpg",
|
||||||
"score": 1.0
|
"score": 1.0
|
||||||
},
|
},
|
||||||
@ -33,7 +40,7 @@
|
|||||||
|
|
||||||
"444444444": {
|
"444444444": {
|
||||||
"title": "Example Workshop Item",
|
"title": "Example Workshop Item",
|
||||||
"description": "Example Workshop Item with all Details",
|
"description": "Example Workshop Item"
|
||||||
},
|
},
|
||||||
|
|
||||||
"555555555": {
|
"555555555": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user