1
0
mirror of https://github.com/yxrei/bemani-guide.git synced 2025-02-22 13:10:33 +01:00

feat: spin-off unity modding and fix ongeki

This commit is contained in:
nairobi 2025-02-21 04:58:44 +01:00
parent 85ff9d98e6
commit bd83fc4ef2
10 changed files with 124 additions and 110 deletions

41
docs/extras/unity.md Normal file
View File

@ -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.<br>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`.

View File

@ -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."

View File

@ -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)

View File

@ -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.**

View File

@ -1,4 +1,4 @@
# Controllers (ONGEKI bright MEMORY)
# Controllers (O.N.G.E.K.I. bright MEMORY)
<div style="text-align: center;">
<img src="/img/ongeki/sddt/brightmemory.png" width="50%">
</div>

View File

@ -1,14 +1,14 @@
# Game Setup (ONGEKI bright MEMORY)
# Game Setup (O.N.G.E.K.I. bright MEMORY)
<div style="text-align: center;">
<img src="/img/ongeki/sddt/brightmemory.png" width="50%">
</div>
!!! danger "Please make sure you downloaded your data from an appropriate source.<br>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 <W> -screen-height <H>`: resolution
??? warning "Note about resolution"
- The service menu will only render correctly at 1080x1920.
- This can be fixed with a patch.
* `-monitor <N>`: 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`.
<img src="/img/ongeki/sddt/setup/5_audio.png">
- 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?"

View File

@ -1,4 +1,4 @@
# Troubleshooting (ONGEKI bright MEMORY)
# Troubleshooting (O.N.G.E.K.I. bright MEMORY)
<div style="text-align: center;">
<img src="/img/ongeki/sddt/brightmemory.png" width="50%">
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -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

View File

@ -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: |