You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
3.1 KiB

5 years ago
6 years ago
6 years ago
  1. # BSIPA [![Build status](https://ci.appveyor.com/api/projects/status/1ruhnnfeudrrd097?svg=true)](https://ci.appveyor.com/project/nike4613/beatsaber-ipa-reloaded-9smsb)
  2. Beat Saber IPA - The mod injector tailored for Beat Saber
  3. ## How To Install
  4. 1. Download a release (https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded/releases)
  5. 2. Extract the contents into the game folder
  6. 3. Run **IPA.exe**
  7. 4. Start the game as usual
  8. A console window should open before the game starts if the installation was successful.
  9. To disable this console window, pass `--no-console` to the game.
  10. ## How To Uninstall
  11. 1. Drag & drop the game exe onto **IPA.exe** while holding <kbd>Alt</kbd>
  12. - Or run `ipa -rn` in a command window
  13. ## Arguments
  14. `IPA.exe file-to-patch [arguments]`
  15. - `--launch`: Launch the game after patching
  16. - `--revert`: Revert changes made by IPA (= unpatch the game)
  17. - `--nowait`: Never keep the console open
  18. - See `-h` or `--help` for more options.
  19. Unconsumed arguments will be passed on to the game in case of `--launch`.
  20. ## How To Develop
  21. 1. Create a new **Class Library** C# project (.NET 4.6)
  22. 2. Download a release and add **IPA.Loader.dll** to your references
  23. 3. Implement `IBeatSaberPlugin` or `IEnhancedBeatSaberPlugin`
  24. 4. Build the project and copy the DLL into the Plugins folder of the game.
  25. See [Developing](https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded/wiki/Developing) for more information.
  26. ## How To Keep The Game Patched
  27. BSIPA will automatically repatch the game when it updates, as long as `winhttp.dll` is present in the install directory.
  28. ## Notes for running under Wine
  29. For some reason, by default, Wine does not load DLLs in quite the same way that Windows does, causing issues with the injection.
  30. To make the injection work with Wine, `winhttp` has to have a DLL override set to `native,builtin`. This can be set either through
  31. Protontricks, or with the following `.reg` file.
  32. ```reg
  33. REGEDIT4
  34. [HKEY_CURRENT_USER\Software\Wine\DllOverrides]
  35. "winhttp"="native,builtin"
  36. ```
  37. ## Building
  38. ### Prerequisites
  39. - Microsoft Visual Studio 2019 or later
  40. - Tools for C/C++ (MSVC) v141
  41. - .NET 4.6.1 SDK and .NET 4.7.2 SDK
  42. ### Building
  43. 1. Clone with `git clone https://github.com/beat-saber-modding-group/BeatSaber-IPA-Reloaded.git --recursive`
  44. 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.
  45. ```
  46. C:/Program Files (x86)/Steam/steamapps/common/Beat Saber/
  47. ```
  48. 3. Open `BSIPA.sln` in Visual Studio.
  49. 4. Choose the configuration `x64`
  50. 5. Rebuild all. Any time you make a change, ALWAYS Rebuild All.
  51. 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/`