diff --git a/README.md b/README.md index 2a014edb..55150a1f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,17 @@ To disable this console window, pass `--no-console` to the game. 1. Drag & drop the game exe onto **IPA.exe** while holding Alt - Or run `ipa -rn` in a command window -2. Done + +## Arguments + +`IPA.exe file-to-patch [arguments]` + +- `--launch`: Launch the game after patching +- `--revert`: Revert changes made by IPA (= unpatch the game) +- `--nowait`: Never keep the console open +- See `-h` or `--help` for more options. + +Unconsumed arguments will be passed on to the game in case of `--launch`. ## How To Develop @@ -33,13 +43,23 @@ See [Developing](https://github.com/nike4613/BeatSaber-IPA-Reloaded/wiki/Develop BSIPA will automatically repatch the game when it updates, as long as `winhttp.dll` is present in the install directory. -## Arguments +## Building -`IPA.exe file-to-patch [arguments]` +### Prerequisites -- `--launch`: Launch the game after patching -- `--revert`: Revert changes made by IPA (= unpatch the game) -- `--nowait`: Never keep the console open -- See `-h` or `--help` for more options. +- Microsoft Visual Studio 2017 or later +- Tools for C/C++ (MSVC) +- .NET 4.6 SDK and .NET 4.7.1 SDK -Unconsumed arguments will be passed on to the game in case of `--launch`. +### Building + +1. Clone with `git clone https://github.com/nike4613/BeatSaber-IPA-Reloaded.git --recursive` +2. Create a file, `bsinstalldir.txt` in the solution root. Do NOT create this in Visual Studio; VS adds a BOM at the begginning of the file that the tools used cannot read. It should contain the path to your Beat Saber installation, using forward slashes with a trailing slash. e.g. +``` +C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/ +``` +3. Open `BSIPA.sln` in Visual Studio. +4. Choose the configuration `x64` +5. Rebuild all. Any time you make a change, ALWAYS Rebuild All. + +When building a Debug build, all referenced assemblies from Beat Saber will be copied from the install directory provided in `bsinstalldir.txt` into `Refs/`. Any new references should reference the copy in there. When building for Release, it just uses the files already in `Refs/` \ No newline at end of file