From f96921da10a2dbfb8c0cbd55b9ee73685276fb47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?=
<39484203+jieyouxu@users.noreply.github.com>
Date: Thu, 8 Aug 2024 16:08:53 +0800
Subject: [PATCH] Update README
---
README.md | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 121 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index df63914..0f9f57d 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,30 @@
# mint
-3rd party mod integration tool for Deep Rock Galactic to download and integrate mods completely
-externally of the game. This enables more stable mod usage as well as offline mod usage. Works for
-both Steam and Microsoft Store versions.
+> **Disclaimer**
+>
+> `mint` is not officially endorsed by Ghost Ship Games (GSG), not are `mint` contributors
+> affiliated with GSG**. `mint` is a **third-party tool**, use at your own risk.
+
+`mint` is third-party party mod integration tool for **Deep Rock Galactic** (DRG) to download and
+integrate mods completely externally of the game. This enables more stable mod usage as well as
+offline mod usage.
+
+## Supported game versions
+
+`mint` is intended to work for both Steam and Microsoft Store versions of DRG.
+
+## Supported environments
+
+Contributor bandwidth is very limited, so only select environments are intentionally supported
+depending on what environments the contributors have access to test in. We are unable to help
+diagnose your problems if you are using an environment that we don't have access to.
+
+- `mint` is intended to run on:
+ - Windows 11. Windows 7 is *not* supported as it is considered a [Tier 3 platform as per rustc's
+ Target Tier Policy][win7-tier-3].
+ - Common Linux distros. Ubuntu is what I have access to. Your mileage may vary depending on the
+ exact distro and compositor.
+- Running on macOS is *not* supported.
@@ -18,12 +40,105 @@ when prompted.
Most mods work just as if they were loaded via the official integration, but there are still some
behavioural differences. If a mod is crashing or otherwise behaving differently than when using the
-official integration, *please* create an
-[issue](https://github.com/trumank/mint/issues/new) so it can be addressed.
+official mod.io integration, *please* create an [issue](https://github.com/trumank/mint/issues/new)
+so it can be addressed.
+
+## Usage etiquette
+
+`mint` does not enforce sandbox saves. As such:
+
+- **Use mods responsibly**.
+- **Respect other people who wish to preserve progression**.
+- **Do not host unmarked modded lobbies**. `mint` will automatically prepend a `[MODDED]` tag in
+ front of your lobby name. We consider behaviors such as removing this prefix and hosting unmarked
+ lobbies **disrespectful** to other players who probably did not consent to joining your modded
+ lobby and has no means of telling otherwise.
For more details, please consult our [user guide](https://github.com/trumank/mint/wiki).
-## Usage
+---
+
+## Compiling from Source
+
+`mint` can be tricky to build from source, because it has two components:
+
+1. GUI and supporting library code (the "**app**")
+2. DLL hook (the "**hook**")
+
+The **app** needs to be built for your **host** target.
+
+- If you are on Windows, this could be something like `x86_64-pc-windows-msvc`.
+- If you are on Linux, this could be something like `x86_64-unknown-linux-gnu`.
+
+The **hook** must be cross-compiled as a C dynamic library for the `x86_64-pc-windows-msvc` or
+`x86_64-pc-windows-gnu` target depending on your environment. This means that you will need a
+suitable cross-compiler to build the hook if your host environment is not one of
+`x86_64-pc-windows-msvc` or `x86_64-pc-windows-gnu`.
+
+### Requirements
+
+You need a working Rust distribution to build `mint`, which can be acquired via the [`rustup`
+installer][rustup].
+
+`mint` requires a [**nightly** rust toolchain][rustup-nightly-toolchain].
+
+You can acquire a nightly toolchain suitable for your host environment by:
+
+```bash
+$ rustup install nightly
+```
+
+`mint` also requires [`gtk` dependencies][gtk].
+
+#### Linux / WSL
+
+On Linux, you will need a cross-compiler for `x86_64-pc-windows-gnu`. For example,
+`x86_64-w64-mingw32-gcc`.
+
+I only have access to Ubuntu, so the exact package names and installation instructions will depend
+on your specific Linux distro.
+
+##### Ubuntu
+
+```bash
+$ sudo apt-get update
+$ sudo apt-get upgrade
+# Basic build utils
+$ sudo apt-get install build-essential pkg-config
+# C cross-compiler
+$ sudo apt-get install gcc-mingw-w64
+# gtk3
+$ sudo apt-get install libgtk-3-dev
+```
+
+#### Windows
+
+On Windows, you'll need the latest Visual C++ build tools. It's easiest if you acquire it via
+[`rustup-init`][rustup] and follow the recommended installation settings. See
+ for more details.
+
+### Compiling and running
+
+For development builds,
+
+```rs
+$ cargo build
+```
+
+For actual usage, you should build with release profile
+
+```rs
+$ cargo build --release
+```
+
+[win7-tier-3]: https://doc.rust-lang.org/rustc/platform-support/win7-windows-msvc.html
+[rustup]: https://rustup.rs/
+[rustup-nightly-toolchain]: https://rust-lang.github.io/rustup/concepts/toolchains.html
+[gtk]: https://www.gtk.org/docs/installations/
+
+---
+
+## Basic Usage
This section assumes that you are on Windows and is using the steam version of DRG, working with
either local `.pak`s or mod.io mods.