CSHP
This is a cross-platform tool to historicize different branches/depots/manifests and generating pseudocode for it to compare different game updates.
Roadmap
This project is WIP but will get updates frequently
listing the features below.
- Fetching depots from a steamDB API.
- Download all the manifests of the depo.
- Only download certain assemblies based on user configuration.
- Dissasemble assemblies
- Dissasemble assemblies without hardcoding the names.
- Safety of the code (anything that panics isn't a recoverable error).
- Support for multiple branches.
- Support for uploading pseudo using git.
- Create different branches for different manifests.
- Multithreaded downloading/dissasembly.
- Remove hardcoded values.
Support
This project supports x86_64/arm64 CPU's.
The Operation systems/Kernels supported are: Linux, Windows,macOS.
If you need any manual help/issues please create an GitHub issue or contact me on matrix under @raizo:matrix.org
.
Requirements
- DepotDownloader in a
downloader
directory. - ILspycmd set the path in main.rs (hardcoding will be removed later)
- .NET 6.0 SDK/Runtime
Usage
- Move
DepotDownloader
into thedownloader
folder.
Setting up the folders
- Create a download directory (Where the manifests are getting downloaded in).
- Create a pseudo directory (Where the psuedo files are getting dissasembled into).
- Create a repo directory (Where the git repository resides in).
Setting up the repository
- Run these commands in your favorite shell
cd repo_direcotry_name
git init
git remote add origin remote_url_here
- Create branches for all the manifests using either GitHub
git checkout -b branch_name_here main_manifest_branch
.main_manifest_branch
would be the latest game version/manifest.
Setting up the config
- Rename
example_config.json
toconfig.json
. - Change the information in
config.json
.
Setting up the filter
- Change what assembly paths you want dissasembled in the filter.
- Change the name/path of your filter in
config.json
.
Running
- Run
cargo run
in the root directory of this project.