From bd83fc4ef2ea0d40ab04cc73cf44b1750fe5110a Mon Sep 17 00:00:00 2001 From: nairobi Date: Fri, 21 Feb 2025 04:58:44 +0100 Subject: [PATCH] feat: spin-off unity modding and fix ongeki --- docs/extras/unity.md | 41 +++++++ docs/games/maimaidx/buddies/setup.md | 29 +---- docs/games/mu3/controllers.md | 10 +- docs/games/mu3/troubleshooting.md | 29 +---- docs/games/ongekibrightmemory/controllers.md | 2 +- docs/games/ongekibrightmemory/setup.md | 108 ++++++++++-------- .../ongekibrightmemory/troubleshooting.md | 2 +- docs/img/ongeki/sddt/setup/5_audio.png | Bin 8260 -> 0 bytes docs/resources.md | 10 ++ mkdocs.yml | 3 +- 10 files changed, 124 insertions(+), 110 deletions(-) create mode 100644 docs/extras/unity.md delete mode 100644 docs/img/ongeki/sddt/setup/5_audio.png 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)
diff --git a/docs/games/ongekibrightmemory/setup.md b/docs/games/ongekibrightmemory/setup.md index 4aa7da3f..7694f916 100644 --- a/docs/games/ongekibrightmemory/setup.md +++ b/docs/games/ongekibrightmemory/setup.md @@ -1,14 +1,14 @@ -# Game Setup (ONGEKI bright MEMORY) +# Game Setup (O.N.G.E.K.I. bright MEMORY)
!!! danger "Please make sure you downloaded your data from an appropriate source.
This guide is unable to troubleshoot any problems related to bad or poorly managed data." -!!! danger "If you're coming from a previous version of ONGEKI" +!!! danger "If you're coming from a previous version of O.N.G.E.K.I." You'll want to create a new folder for the game and start from scratch. - ONGEKI **DOES NOT** like being extracted over old data! + O.N.G.E.K.I. **DOES NOT** like being extracted over old data! --- @@ -61,7 +61,7 @@ !!! tip "" - ONGEKI content updates are distributed through option folders instead of patching + O.N.G.E.K.I. content updates are distributed through option folders instead of patching the base game. They are named `A???`, with each `?` being a number. Custom options distributed by the community might use letters instead, to distinguish them from official ones. @@ -105,13 +105,24 @@ !!! tip "" - ONGEKI executables are protected and will not run on a regular computer. + O.N.G.E.K.I. executables are protected and will not run on a regular computer. Obtain unprotected (also called "unpacked" or "decrypted" by the community) - copies of `mu3.exe` and `amdaemon.exe` for your game version. + copies of the following files: - Copy `mu3.exe` and `amdaemon.exe` to the `App` folder of your game data. Agree - to overwrite when asked. + - `amdaemon.exe` + - `mu3.exe` + - `mu3_Data\Plugins\amdaemon_api.dll` + - `mu3_Data\Managed\AMDaemon.NET.dll` + - `mu3_Data\Managed\Assembly-CSharp-firstpass.dll` + - `mu3_Data\Managed\Assembly-CSharp.dll` + + Copy the files and folders into the `App/Package` folder of your game data. Agree to overwrite + when asked. + + !!! Warning "Assembly-CSharp Note" + + `Assembly-CSharp.dll` **must** match your game version. --- @@ -149,8 +160,8 @@ ```ini [system] - dipsw2=1 - dipsw2=1 ; WRONG! + dipsw1=1 + dipsw1=1 ; WRONG! ``` #### `[vfs]` @@ -167,19 +178,39 @@ appdata=../../AppData ``` -#### `[gfx]` +--- + +### Setting launch options !!! tip "" + Right click `App\package\start.bat`, select `Edit`. Locate the line that launches `mu3` and edit it according to your preferences: - - Set `windowed` to `0` to run in fullscreen mode and `1` to run in windowed mode. - - If you have multiple monitors and you're running in fullscreen mode (`windowed=0`), - set `monitor` to the index of the monitor you want to run the game on. + ```bat hl_lines="6" + @echo off -??? info "Getting the monitor index" + pushd %~dp0 - Navigate to Windows display settings. Each monitor should be assigned a number. - The monitor index is that number minus one. For example, monitor 2 means monitor index 1. + start "AM Daemon" /min inject -d -k mu3hook.dll amdaemon.exe -f -c config_common.json config_server.json config_client.json + inject -d -k mu3hook.dll mu3 -screen-fullscreen 0 -popupwindow -screen-width 1080 -screen-height 1920 + taskkill /f /im amdaemon.exe > nul 2>&1 + echo. + echo Game processes have terminated + pause + ``` + +??? tip "Launch options" + * `-screen-fullscreen 0`: windowed + * `-screen-fullscreen 0 -popupwindow`: borderless windowed + * `-screen-fullscreen 1`: exclusive fullscreen + * `-screen-width -screen-height `: resolution + ??? warning "Note about resolution" + - The service menu will only render correctly at 1080x1920. + - This can be fixed with a patch. + * `-monitor `: the monitor to run the game on + ??? info "Getting the monitor index" + Navigate to Windows display settings. Each monitor should be assigned a number. + The monitor index is that number. For example, monitor 2 means `-monitor 2`. --- ### Connecting to a network @@ -204,7 +235,7 @@ id=A69E-XXXXXXXXXXX ``` - Finally, you need a card number. Create a file named `aime.txt` inside `App\bin\DEVICE` and type in + Finally, you need a card number. Create a file named `aime.txt` inside `App\package\DEVICE` and type in your 20-digit access code if you already have one, or make one up if you don't. If you're making one up, the access code **MUST NOT** start with a 3. @@ -233,20 +264,18 @@ !!! tip "" - - Right-click on the volume setting in your taskbar and select `Sounds`. - - Navigate to the `Playback` tab, right click on your default audio device, and click on `Properties`. - - Go to the `Advanced` tab. - - Check both boxes under `Exclusive Mode`. - - Open the `Default Format` dropdown. - - Pick either `16 bit, 48000Hz (DVD Quality)` or `24 bit, 48000Hz (Studio Quality)`, click `Apply`, then `OK`. - - + - 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)
diff --git a/docs/img/ongeki/sddt/setup/5_audio.png b/docs/img/ongeki/sddt/setup/5_audio.png deleted file mode 100644 index e8aea756b0900d30a2a66049ef178f83585b6ae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8260 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 Y61fzB0leCYlZOKC8kp%<>N-dNA0pc&SpWb4 diff --git a/docs/resources.md b/docs/resources.md index 1b2fdebd..b610929e 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -76,3 +76,13 @@ - [CHUNITHM Humen](https://www.youtube.com/@chunithm_humen) - Screen captures of all CHUNITHM charts - Codex's [English Chunithm Guide](https://docs.google.com/document/d/1bsVv3-cOuk_0ZMlLq8joqcwa5YUM_Ff4VnQCgJIkUOk/view) - Handy CHUNITHM resource for players of all skill levels + +--- + +### O.N.G.E.K.I. + +!!! tip "" + - [sdvx.in](https://sdvx.in/ongeki.html) – Chart viewer for O.N.G.E.K.I. + - [O.N.G.E.K.I. Humen](https://www.youtube.com/@ongeki_humen) and [MLN Rev](https://www.youtube.com/@MLN_Rev) – Screen captures of all O.N.G.E.K.I. charts + - Lilyshy's [English O.N.G.E.K.I. Guide](https://docs.google.com/document/d/1HKCW7DWjYRnVjCmPzrQwDKC0wKTi41X-Y-dP1-ygliU/view) – + Handy O.N.G.E.K.I. resource for players of all skill levels diff --git a/mkdocs.yml b/mkdocs.yml index 4d0dcf88..38560bc5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -146,7 +146,7 @@ nav: - "Game Setup": "games/maimaidx/buddies/setup.md" - "Controllers": "games/maimaidx/buddies/controllers.md" - "Troubleshooting": "games/maimaidx/buddies/troubleshooting.md" - - "ONGEKI": + - "O.N.G.E.K.I.": - "bright MEMORY": - "Game Setup": "games/ongekibrightmemory/setup.md" - "Controllers": "games/ongekibrightmemory/controllers.md" @@ -171,6 +171,7 @@ nav: - "Arcade Parts": "extras/parts.md" - "Touch Monitors & Polling Rates": "extras/pollingrates.md" - "SoftEther VPN for Cab-to-Cab": "extras/softether.md" + - "Modding Unity-based games": "extras/unity.md" - Other Resources: resources.md not_in_nav: |