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:
parent
85ff9d98e6
commit
bd83fc4ef2
41
docs/extras/unity.md
Normal file
41
docs/extras/unity.md
Normal 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`.
|
@ -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."
|
||||
|
@ -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)
|
||||
|
@ -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.**
|
||||
|
@ -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>
|
||||
|
@ -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?"
|
||||
|
||||
|
@ -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 |
@ -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
|
||||
|
@ -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: |
|
||||
|
Loading…
x
Reference in New Issue
Block a user