!!! 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 maimai DX"
Create a new folder for the game and start from scratch.
maimai DX **DOES NOT** like being extracted over old data!
---
### Preparing data
!!! danger "There are currently issues with running game data in the `E:\` or `Y:\` drive.<br>Please extract the data into other drives."
!!! tip ""
After downloading and extracting your data, we need to make sure your files
are not set to `Read-only`.
- Right click the folder containing your data, then click on `Properties`.
- In the `General` tab go down to `Attributes`, untick `Read-only` and click `Apply`.
- A popup will appear, select `Apply changes to this folder, subfolder and files`and press `OK`.
- Finally, click `OK` again to exit out of properties.
You should end up with a file structure as follows.
- Create an `App` folder and move all files and folders from the image inside of it.
- Create empty folders named `amfs`, `Option` and `AppData` next to the `App` folder.
If extra files are present next to your folders, such as executables, scripts, etc..
**remove them. This also means your data was tampered with and we strongly recommend
getting new data from somewhere else.**
#### Installing ICFs
!!! tip ""
Install Configuration Files (ICFs) tell the game what version it is.
**Without this your game cannot go online!**
If your `amfs` folder already has files`ICF1` and `ICF2`, skip this step.
Otherwise, obtain copies of `ICF1` for your game version and place it in
the `amfs` folder. If it is named something else, rename it to exactly
`ICF1`**without any file extensions.**`ICF2` is a copy of `ICF1`.
??? info "Showing File Extensions"
By default, file extensions on Windows are hidden. Enable them by navigating to
the `View` tab in File Explorer and select `File name extensions`.
#### Installing Unprotected Executables
!!! tip ""
maimai DX executables are protected and will not run on a regular computer.
Obtained unprotected (also called "unpacked" or "decrypted" by the community)
copies of the following files and the associated configuration file:
- amdaemon.exe
- Sinmai.exe
- Sinmai_Data/Plugins/amdaemon_api.dll
- Sinmai_Data/Plugins/Cake.dll
- Sinmai_Data/Managed/AMDaemon.NET.dll
- Sinmai_Data/Managed/Assembly-CSharp.dll
- mai2.ini or maimaiDX.ini
Copy the files and folders into the `App/Package` folder of your game data. Agree to overwrite
when asked.
!!! Warning "Assembly-CSharp Notes"
`Assembly-CSharp.dll`**must** match your game version. All others can be
reused from other game versions. If these were not provided with your data,
join the [Discord](https://discord.gg/cZRUmEPK78) for assistance.
`Assembly-CSharp.dll`**must** also contain `mai2.ini` or `maimaiDX.ini`. These configuration
files are specific to the unprotected `Assembly-CSharp.dll`. If your package does not
contain a configuration file, please create one with the following to bypass hardware
checks on game startup:
```ini
[AM]
Target=0
IgnoreError=1
DummyTouchPanel=1
DummyLED=1
DummyCodeCamera=1
DummyPhotoCamera=1
[Sound]
Sound8Ch=0
[Patches]
EnablePatchLog=1
```
!!! tip "If the assembly supports it, `App/Package/dpPatchLog.log` lists supported patches after the first run. Otherwise see [Custom Mods](#custom-mods)"
---
### Installing Segatools
!!! tip ""
- Head over to [segatools releases](https://gitea.tendokyu.moe/Dniel97/segatools/releases/latest)
and download the latest `segatools.zip`. **Do not download the source code.**
- Extracting the archive should give you a few more zip files. Find `mai2.zip`
and extract it to the `App/Package` folder in your game data.
You should now have a few more files inside the `App/Package` folder, as highlighted:
- Press `ESC` to exit. Close all associated windows including `CMD`, `AMDaemon`, and `Sinmai`. Relaunch with `start.bat` and the game should boot into guest mode.
---
### Connecting to a Network
!!! danger "Please choose one of the two solutions, not both!"
??? tip "Remote (Online Network)"
Head to the `[dns]` section inside `segatools.ini`. Set `default` to the address
provided by your network. **Do not add `http://` or `https://` to the address!**
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.
<imgsrc="/img/maimaidx/setup/access_code.png">
??? tip "Local (ARTEMiS/AquaDX)"
Both of these options require non-trivial setup. Refer to the official guides for [ARTEMiS](https://gitea.tendokyu.moe/Hay1tsme/artemis/src/branch/develop/docs/INSTALL_WINDOWS.md)
and [AquaDX](https://github.com/hykilpikonna/AquaDX?tab=readme-ov-file#usage-v1-developmental-preview)
to set up a local server.
---
### Further Configuration
#### Updating the Base Game
!!! tip ""
Extract your patch's files to your existing data in a way that matches its
file structure. Agree to overwrite files if necessary.
!!! Warning "Only update if an unencrypted `Assembly-CSharp.dll` is available"
#### Installing Option Data
!!! tip ""
maimai DX content updates are distributed through option folders instead of patching
the base game. They are named with a letter followed by three numbers. Each release
increments the letter (ie. BUDDiES is `H???` and BUDDiES+ is `I???`).
Extract any options you've downloaded into the `option` folder. You should end up with
a file structure as follows. **Do not be worried if you have fewer or more option folders.**
!!! 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"
---
### Controllers and Troubleshooting
!!! info "Input methods and controllers are covered in the [Controllers](controllers.md) page."
!!! warning "Have any other issues?"
Check out the [Troubleshooting](troubleshooting.md) and [Error Codes](../../../errorcodes/sega.md) pages.