diff --git a/docs/extras/unity.md b/docs/extras/unity.md
new file mode 100644
index 00000000..1da2576d
--- /dev/null
+++ b/docs/extras/unity.md
@@ -0,0 +1,41 @@
+# Modding Unity-based games
+
+!!! danger "Before proceeding"
+ This guide applies to games made in the Unity engine, such as maimai DX, O.N.G.E.K.I. and Card Maker.
+
+ **It is highly recommended to use an unpatched Assembly DLL as your base!**
+
+---
+
+!!! info "Patches have historically been hardcoded into the unprotected `Assembly-CSharp.dll`"
+ The modern approach is to use BepInEx to load custom patches without tampering with Assembly-CSharp.
BepInEx can be used to load all mods, including those made for MelonLoader and MonoMod
+
+### Installing BepInEx
+!!! tip ""
+ - Download the [BepInEx 5 stable release](https://github.com/BepInEx/BepInEx/releases/latest) (`BepInEx_win_x64_5.x.y.z.zip`).
+ !!! warning "Some maimai DX mods are only compatible with BepInEx 5.4.22"
+
+ - Extract the `BepInEx` folder to the `App\package` folder (ignore other files such as `.doorstop_version`)
+
+ - Modify `segatools.ini` with the following:
+
+ ```ini
+ [unity]
+ enable=1
+ targetAssembly=BepInEx\core\BepInEx.Preloader.dll
+ ```
+### Installing mods
+!!! tip "BepInEx plugins"
+ Place them in `BepInEx\plugins`.
+
+!!! tip "Melonloader mods and plugins"
+ - Download `MLLoader-UnityMono-BepInEx5` of the latest [BepInEx.MelonLoader.Loader](https://github.com/BepInEx/BepInEx.MelonLoader.Loader/releases/latest).
+ - Extract it into `App\package`.
+ - Place mods in `MLLoader\Mods`.
+
+!!! tip "MonoMod patches"
+ !!! info ""
+ These patches always follow the naming pattern: `Assembly-CSharp.Name.mm.dll`.
+
+ - Extract [BepInEx.MonoMod.Loader](https://github.com/BepInEx/BepInEx.MonoMod.Loader/releases/latest) into `App\package`.
+ - Place patches in `BepInEx\monomod`.
\ No newline at end of file
diff --git a/docs/games/maimaidx/buddies/setup.md b/docs/games/maimaidx/buddies/setup.md
index 1c65bfd7..2f7aff5a 100644
--- a/docs/games/maimaidx/buddies/setup.md
+++ b/docs/games/maimaidx/buddies/setup.md
@@ -330,33 +330,12 @@
!!! warning "Do not mix option data between versions"
-#### Custom Mods
-
-!!! tip ""
-
- !!! danger "Please use BepInEx to load all mods including MelonLoader and MonoMods"
-
- Mods have historically been hardcoded into the unprotected `Assembly-CSharp.dll` which the user can
- enable/disable with the `mai2.ini` or `maimaiDX.ini` configuration. The modern approach is to use
- BepInEx to load custom mods without hardmodding the Assembly-CSharp file.
-
- To enable BepInEx, download the [BepInEx stable release](https://github.com/BepInEx/BepInEx/releases/latest),
- extract the BepInEx folder to the `App/Package` folder, and modify `segatools.ini` with the following:
-
- ```ini
- [unity]
- enable=1
- targetAssembly=BepInEx\core\BepInEx.Preloader.dll
- ```
-
- - BepInEx: place mods in `BepInEx/Plugins`
- - Melonloader: use [BepInEx.MelonLoader.Loader](https://github.com/BepInEx/BepInEx.MelonLoader.Loader/releases/latest) UnityMono-BepInEx5. Place mods in `MLLoader/Mods`
- - MonoMods: use [BepInEx.MonoMod.Loader](https://github.com/BepInEx/BepInEx.MonoMod.Loader/releases/latest). Place mods in `BepInEx/monomod`
-
- !!! warning "Some maimai DX mods are only compatible with BepInEx 5.4.22"
-
---
+### Custom Mods
+
+!!! info "Mods are covered on the [Unity modding](../../../extras/unity.md) page."
+
### Controllers and Troubleshooting
!!! info "Input methods and controllers are covered in the [Controllers](controllers.md) page."
diff --git a/docs/games/mu3/controllers.md b/docs/games/mu3/controllers.md
index 85d1a248..15733c47 100644
--- a/docs/games/mu3/controllers.md
+++ b/docs/games/mu3/controllers.md
@@ -74,8 +74,8 @@
!!! tip ""
- Mageki allows you to use a mobile device as a ONGEKI controller. It replicates the layout
- of an arcade ONGEKI controller on your mobile device.
+ Mageki allows you to use a mobile device as a O.N.G.E.K.I. controller. It replicates the layout
+ of an arcade O.N.G.E.K.I. controller on your mobile device.
Mageki supports both Android and iOS devices. For installation instructions, please refer to
the [English User Manual on the Mageki GitHub Repository](https://github.com/Sanheiii/Mageki/wiki/Mageki-User-Manual).
@@ -87,16 +87,16 @@
```ini hl_lines="2 5"
[mu3io]
- path = MU3Input.dll
+ path=MU3Input.dll
[aimeio]
- path64 = MU3Input.dll
+ path=MU3Input.dll
```
If these sections do not exist, add them to the end of your `segatools.ini` file.
!!! info "IOConfig doesn't launch for me/This application requires the Windows App Runtime"
- Download and extract the contents of the [Windows App Runtime Version 1.5 Redustributable](https://aka.ms/windowsappsdk/1.5/1.5.240802000/Microsoft.WindowsAppRuntime.Redist.1.5.zip)
+ Download and extract the contents of the [Windows App Runtime Version 1.5 Redistributable](https://aka.ms/windowsappsdk/1.5/1.5.240802000/Microsoft.WindowsAppRuntime.Redist.1.5.zip)
In the `WindowsAppSDK-Installer-x64` folder run `WindowsAppRuntimeInstall-x64.exe`
If IOConfig still fails to launch, try using the [SelfContained version of ongeki-io](https://github.com/Sanheiii/ongeki-io/releases)
diff --git a/docs/games/mu3/troubleshooting.md b/docs/games/mu3/troubleshooting.md
index 945fc45e..3c0970d3 100644
--- a/docs/games/mu3/troubleshooting.md
+++ b/docs/games/mu3/troubleshooting.md
@@ -46,6 +46,7 @@
This is likely to be `Assembly-CSharp.dll`, `Assembly-CSharp-firstpass.dll`, and/or `AMDaemon.NET.dll`.
You can try replacing the DLLs or re-downloading data from elsewhere.
+ - An ill-formed keychip is defined in `segatools.ini`
---
@@ -57,7 +58,7 @@
- Make sure V-Sync isn't disabled in your graphics settings (called "Vertical sync"
in NVIDIA Control Panel and "Wait for Vertical Refresh" in AMD Control Panel.)
- - Limit `mu3.exe` to run at 60 FPS using a tool like [RivaTuner](https://www.guru3d.com/download/rtss-rivatuner-statistics-server-download).
+ - Limit `mu3.exe` to run at 60 FPS using a tool like [RivaTuner](https://www.guru3d.com/download/rtss-rivatuner-statistics-server-download) or a patch.
It could also be that your computer's performance isn't good enough to keep
a steady framerate.
@@ -82,29 +83,3 @@
For NVIDIA users, create an override for `mu3.exe` in NVIDIA Control Panel
and change "Power management mode" to "**Prefer maximum performance**".
-
----
-
-### My game crashes when I tab out of fullscreen!
-
-!!! tip ""
-
- As the game is intended to run on arcade hardware, it doesn't like being minimized.
-
- One workaround for this is to use DXVK. Download the latest version from [releases](https://github.com/doitsujin/dxvk/releases/latest).
- This will be a `dxvk-x.y.z.tar.gz` file, which you can open using [7zip](https://www.7-zip.org/).
- Navigate to the `x32` folder, and copy the `d3d9.dll` file to your game's `App\bin` folder, agreeing
- to overwrite when asked.
-
- You should now be able to tab out of fullscreen without crashing the game.
-
-!!! warning
-
- The game will not ignore inputs when out of focus.
-
- This means any controller inputs will still be accepted, so try not to lean onto
- your slider whilst tabbed out!
-
- This also means that you can accidentally enter the service menu by hitting your
- `Test` key even if the game is minimised. If you were in the middle of a credit,
- **your scores will be lost.**
diff --git a/docs/games/ongekibrightmemory/controllers.md b/docs/games/ongekibrightmemory/controllers.md
index 04a72a79..af6ce38a 100644
--- a/docs/games/ongekibrightmemory/controllers.md
+++ b/docs/games/ongekibrightmemory/controllers.md
@@ -1,4 +1,4 @@
-# Controllers (ONGEKI bright MEMORY)
+# Controllers (O.N.G.E.K.I. bright MEMORY)
+ - Open `App\package\mu3.ini` (or create it if it doesn't exist).
+ - Set `WasapiExclusive` in the `Sound` section to `0` (create the key if it doesn't exist):
+ ```ini
+ [Sound]
+ WasapiExclusive=0
+ ```
#### Fixing OpenSSL on Intel 10th Gen and newer CPUs
!!! tip ""
- If you have an Intel 10th Gen CPU or newer, right click `App\bin\start.bat`, select `Edit`, and add the
+ If you have an Intel 10th Gen CPU or newer, right click `App\package\start.bat`, select `Edit`, and add the
highlighted line to the top of the file.
```batch hl_lines="2"
@@ -328,32 +357,11 @@
### Custom Mods
-!!! tip ""
-
- !!! danger "Please use BepInEx to load all mods including MelonLoader and MonoMods"
-
- Mods have historically been hardcoded into the unprotected `Assembly-CSharp.dll` which the user can
- enable/disable with the `mu3.ini` configuration. The modern approach is to use
- BepInEx to load custom mods without hardmodding the Assembly-CSharp file.
-
- To enable BepInEx, download the [BepInEx stable release](https://github.com/BepInEx/BepInEx/releases/latest),
- extract the BepInEx folder to the `App\package` folder, and modify `segatools.ini` with the following:
-
- ```ini
- [unity]
- enable=1
- targetAssembly=BepInEx\core\BepInEx.Preloader.dll
- ```
-
- - BepInEx: place mods in `BepInEx\Plugins`
- - Melonloader: use [BepInEx.MelonLoader.Loader](https://github.com/BepInEx/BepInEx.MelonLoader.Loader/releases/latest) UnityMono-BepInEx5. Place mods in `MLLoader\Mods`
- - MonoMods: use [BepInEx.MonoMod.Loader](https://github.com/BepInEx/BepInEx.MonoMod.Loader/releases/latest). Place mods in `BepInEx\monomod`
-
----
+!!! info "Mods are covered on the [Unity modding](../../extras/unity.md) page."
### Controllers and Troubleshooting
-!!! info "Input methods and controllers are covered in the [Controllers](../ongekibrightmemory/controllers.md) page."
+!!! info "Input methods and controllers are covered on the [Controllers](../ongekibrightmemory/controllers.md) page."
!!! warning "Have any other issues?"
diff --git a/docs/games/ongekibrightmemory/troubleshooting.md b/docs/games/ongekibrightmemory/troubleshooting.md
index 29d394a6..f8e11736 100644
--- a/docs/games/ongekibrightmemory/troubleshooting.md
+++ b/docs/games/ongekibrightmemory/troubleshooting.md
@@ -1,4 +1,4 @@
-# Troubleshooting (ONGEKI bright MEMORY)
+# Troubleshooting (O.N.G.E.K.I. bright MEMORY)