diff --git a/docs/games/maimai/buddies/controllers.md b/docs/games/maimai/buddies/controllers.md new file mode 100644 index 0000000..706f35f --- /dev/null +++ b/docs/games/maimai/buddies/controllers.md @@ -0,0 +1,31 @@ +# MAIMAI BUDDIES + + +--- + +### 1 - Introduction + +!!! danger "Important - Read Carefully" + + This guide is created and maintained by volunteers. If you encounter + any errors in the guide or have trouble with any of the steps, please + [join the two-torial discord](https://discord.gg/cZRUmEPK78) and let + us know in the appropriate section. + + The guide is organized by numbered chapters which can be accessed from + the right sidebar. Each chapter contains collapsible sections with + the following labels and colors: + + !!! note "Mandatory - Must Read and Follow Steps Exactly" + + !!! question "Optional - Can Skip Steps" + + !!! example "Decide - Choose ONLY ONE from the Group" + + !!! tip "Info - Extra Information and Notes" + + !!! danger "Important - Read Carefully" + +--- + +### Coming Soon diff --git a/docs/games/maimai/buddies/setup.md b/docs/games/maimai/buddies/setup.md new file mode 100644 index 0000000..a505eb1 --- /dev/null +++ b/docs/games/maimai/buddies/setup.md @@ -0,0 +1,570 @@ +# MAIMAI BUDDIES + + +--- + +### 1 - Introduction + +!!! danger "Important - Read Carefully" + + This guide is created and maintained by volunteers. If you encounter + any errors in the guide or have trouble with any of the steps, please + [join the two-torial discord](https://discord.gg/cZRUmEPK78) and let + us know in the appropriate section. + + The guide is organized by numbered chapters which can be accessed from + the right sidebar. Each chapter contains collapsible sections with + the following labels and colors: + + !!! note "Mandatory - Must Read and Follow Steps Exactly" + + !!! question "Optional - Can Skip Steps" + + !!! example "Decide - Choose ONLY ONE from the Group" + + !!! tip "Info - Extra Information and Notes" + + !!! danger "Important - Read Carefully" + +--- + +### 2 - Downloads + +!!! danger "This guide assumes you are starting with clean unmodified data" + + Packages that are already Modified or Patched are difficult to debug + and may not work with the steps in this guide. + +??? note "**Find the Following:**" + + - Maimai DX Buddies SDEZ 1.40 + - Unpacked / Decrypted Files + - ICF Files + - (optional) English Patch + - (optional) Option Files + - (optional) Mega Omnimix + + !!! danger "The above are version specific. Do not mix files across different versions.
If you are coming from a previous version of MAIMAI:" + + Create a new folder for the game and start from scratch. + MAIMAI **DOES NOT** like being extracted over old data! + + !!! danger "The 1.41 update is NOT recommended." + +??? note "**Download the Following:**" + + - [Dniel97 segatools.zip 2024-06-30](https://gitea.tendokyu.moe/Dniel97/segatools/releases/tag/2024-06-30) + - [Visual C++ Redistributable Runtime](https://github.com/abbodi1406/vcredist/releases/latest) + +--- + +### 3 - Preparing Data + +??? note "**Folder Structure**" + + !!! danger "There are currently issues with running game data in the `E:\` or `Y:\` drive.
Please extract the data into other drives." + + After downloading and extracting your data, 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. + + Extract Maimai DX Buddies. The root directory file structure is as + follows: + + + + Rename `Option` to `option`. Create empty folders `appdata` and `amfs` + in the root directory: + + + + The `App` folder should have a file structure as follows. + + + + ??? danger "If your data doesn't look like this:" + + If extra files are present next to your folders, such as + executables, scripts, etc.. **This most likely means your + data was tampered with and we strongly recommend getting + new data from somewhere else.** + +??? note "**Installing ICFs**" + + 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 named `ICF1` and `ICF2`, skip + this step. + + Otherwise, obtain a copy of SDEZ_1.40.icf and rename to `ICF1` + **without any file extensions**. Create a copy of ICF1 and rename the + copy to ICF2. Place both files in the `amfs` folder. + + ??? tip "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`. + + ??? tip "Creating ICF Files" + + It is also possible to create (encode) the 1.40 ICF files + using the [icf-reader project](https://gitea.tendokyu.moe/beerpsi/icf-reader/releases) + and the following json: + ``` + [ + { + "type": "System", + "id": "ACA", + "version": "80.01.01", + "required_system_version": "80.01.01", + "datetime": "2021-11-10T13:45:11", + "is_prerelease": false + }, + { + "type": "App", + "id": "SDEZ", + "version": "1.40.00", + "required_system_version": "80.01.01", + "datetime": "2023-08-02T13:00:07", + "is_prerelease": false + } + ] + ``` + + ``` + ./icf-reader.exe [input_json] [output_ICF] + ``` + +??? note "**Installing Unprotected Executables**" + + MAIMAI executables are protected and will not run on a regular + computer. + + Obtained unprotected (also called `unpacked` or `decrypted` by the + community) copies of `Sinmai.exe`, `amdaemon.exe`, and the folder + `Sinmai_Data` with the modified dll's for your game version. + + Copy the files and folder into the `App\Package` folder. Agree to overwrite + files. + +??? question "**Installing English Patch**" + + The patch should contain a `Sinmai_Data` folder. Copy the contents + into the game's `Sinmai_Data` and agree to overwrite files. + +??? question "**Installing Option Data**" + + MAIMAI 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 + different letters instead such as `H???`, to distinguish them from + official ones. + + **Place options folders `A???` / `H???` inside the `option` folder** + +--- + +### 4 - Configuring the Game + +??? note "Installing Segatools" + + - Extract [segatools.zip](https://gitea.tendokyu.moe/Dniel97/segatools/releases/tag/2024-06-30) + - Inside segatools, extract `mai2.zip` which should contain the following + contents: + + + + - Place the above `mai2` contents inside the `App\Package` folder. + +??? note "Configuring Segatools" + + Since there is no graphical configuration tool for segatools, you + will have to edit the configuration file by hand. It is found in + `App\Package\segatools.ini`. + + It is recommended that you follow along using a text editor with + syntax highlighting such as [Notepad++](https://notepad-plus-plus.org/). + + If you've been matching the file structure as described in the + [Preparing data](#preparing-data) section, you can fill in this + section with the values below: + + ```ini + [vfs] + amfs=../../amfs + option=../../option + appdata=../../appdata + ``` + + ```ini + [dns] + default=YOUR_IPv4_Address + ``` + + ??? tip "Finding IPv4 Address" + + Open a command promt. Type `ipconfig` and look for the IPv4 + address. Place those digits here otherwise you will get stuck + on the DNS(LAN) check. + + ```ini + [gpio] + freeplay=1 + ``` + + !!! danger "All other settings are config specific - Leave for now" + +??? note "Configuring Patches" + + The unprotected files call upon a configuration file to load various + patches for the game: + + - **mai2.ini** - if using english patch + - **maimaiDX.ini** - if **not** using english patch + + Create the appropriate file inside the `App\Package` folder with the + following contents: + + ```ini + [AM] + Target=0 + IgnoreError=1 + DummyTouchPanel=1 + DummyLED=1 + DummyCodeCamera=1 + DummyPhotoCamera=1 + + [Patches] + EnablePatchLog=0 + EnableLoadAssetSupportPng=0 + EnablePickImageToCamera=0 + EnableSkipInformationDialog=0 + EnableSkipRegionalDiscover=0 + EnableSinglePlayer=1 + EnableRemoveNetworkEncryption=1 + + [Sound] + Sound8Ch=0 + + [Debug] + Debug=1 + SinglePlayer=1 + MaxTrack=3 + AllOpen=1 + ``` + + ??? tip "More Configuration Options" + + The following have been present in various .ini files and may + or may not work with a specific version. Many of these have + already been moved into segatools and are no longer used: + + ```ini + [AM] + Target=0 // for hardware/cabinet targeting + IgnoreError=1 // ignores errors instead of crashing + // the following are to fake hardware so that the game runs + DummyTouchPanel=1 + DummyLED=1 + DummyCodeCamera=1 + DummyPhotoCamera=1 + + [Sound] + Sound8Ch=0 // changing to 1 causes no sound + + [aime] + enable=1 // seems to be the same as segatools aime enable + + [Patches] + EnablePatchLog=1 // writes to dppatchlog.log + EnableLoadAssetSupportPng=0 // for reading custom jackets + EnablePickImagetoCamera=0 // for setting avatar from file + // the following are self explanatory + EnableSkipInformationDialog=1 + EnableSkipRegionalDiscover=1 + EnableSinglePlayer=1 + EnableRemoveNetworkEncryption=1 + + [Debug] + Debug=1 // enables these options + SinglePlayer=1 // game defaults to 2 player + // automatically unlock the following + AllOpen=1 + AllMap=1 + AllCollection=1 + AllChara=1 + EventOverride=1 // ??? + MaxTrack=6 // number of tracks to play during normal mode (default 3) + MusicSelectTime=65535 // not working + Creative=1 // ??? + ``` + +??? note "Configuring Aime Card" + + !!! danger "If you have a card reader - disconnect it for now." + + Follow these steps even if you have a card reader. + + 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. + + + +--- + +### 5 - Guest Mode Test + +!!! danger "These steps are required, otherwise your game will not run." + +??? note "VCRedist" + + - Download and install the latest [VCRedist](https://github.com/abbodi1406/vcredist/releases/latest) (`VisualCppRedist_AIO_x86_x64.exe`) + - Restart the computer + +??? note "Fixing OpenSSL on Intel 10th Gen and newer CPUs" + + If you have an Intel 10th Gen CPU or newer, right click + `App\bin\start.bat`, select `Edit`, and add the highlighted line to + the top of the file. + + ```batch hl_lines="2" + @echo off + set OPENSSL_ia32cap=:~0x20000000 + + pushd %~dp0 + ... + ``` + +??? note "Test Launch" + + !!! danger "If you are not using the English Patch" + + The menu items follow the same order in either language + + Double click `start.bat` in the `App\Package` folder. If everything + is setup properly, there will be three windows. The cmd windows should + show the following: + + + + The other window `AM Daemon` can be ignored. + + The last window is Sinmai.exe which goes through a sequence of + checks. The first is the data check which also ensures the program + is running on appropriate hardware (make sure Target=0 in mai2.ini): + + + + The next check is for the aime reader which segatools is emulating: + + + + Afterwards the game checks the network: + + + + The last check is on the hardware at which point the game should + be stuck on `Searching for Servers`: + + + + To fix this, press the `F1` key on the keyboard to enter the service + menu: + + + + Navigate to `GAME SETTINGS` using the following keys: + + | Control | Keyboard | + |---------|----------| + | UP | W | + | DOWN | C | + | SELECT | F1 | + + Then change the `LOCAL MATCHING SETTING` to `OFF` + + + + Make sure to `EXIT` on both menus to save the settings. Once you + are back in the menu press `ESC` to quit and close all windows + related to the game. + + Relaunch `start.bat`. The game should now boot (make sure to allow + Sinmai.exe to communicate on local networks) in `Guest Mode` and can + be navigated with the following: + + | Controller | Keyboard | + |------------|----------| + | Button 1 | W | + | Button 2 | E | + | Button 3 | D | + | Button 4 | C | + | Button 5 | X | + | Button 6 | Z | + | Button 7 | A | + | Button 8 | Q | + | Service | F1 | + | Quit | ESC | + +--- + +### 6 - Connecting to a Network + +!!! danger "Please choose ONE of the three options" + + **Remote** - easier to setup but scores may be deleted at anytime
+ **Artemis** - completely local
+ **AquaDX** - **TODO** + +??? example "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!** + + ```ini + [dns] + default=network.example + ``` + + Then, head to the `[keychip]` section and set `id` to the keychip ID + provided by your network host: + + ```ini + [keychip] + id=XXXX-XXXXXXXXXXX + ``` + +??? example "Artemis (Local Network)" + + ??? note "Install Tools" + + - Install [Python 3.11](https://www.python.org/ftp/python/3.11.7/python-3.11.7-amd64.exe) + and `Add Python to PATH` when the option is presented. + + !!! danger "Only use python 3.8 - 3.11 (3.12 will not work)" + + - Download and install [MariaDB](https://mariadb.org/download/) + with default settings. Set a password (`YOUR_DB_PASSWORD`) + and remember it. + + - Download and install [DBeaver](https://dbeaver.io/download/) + with default settings. + + ??? note "Setup Database" + + Open DBeaver and connect to MariaDB database with + `YOUR_DB_PASSWORD`: + + + + Install drivers if prompted. + + Click the `SQL Editor` dropdown and click `Open SQL Console`. + Paste the following into the console (replace + `YOUR_DB_PASSWORD`): + + ``` + CREATE USER 'aime'@'localhost' IDENTIFIED BY 'YOUR_DB_PASSWORD'; + CREATE DATABASE aime; + GRANT Alter,Create,Delete,Drop,Index,Insert,References,Select,Update ON aime.* TO 'aime'@'localhost'; + ``` + + Click the top line then click the small orange right-facing + triangle to run. Make sure there are no errors. Click the + next line and run. Click the last line and run: + + + + If you expand localhost on the left, you should see the new + Database `aime` and the new User `aime@localhost`: + + + + Lastly click the `File` dropdown then `Save` then exit. + + ??? note "Configure Artemis" + + - Download [Hay1tsme Artemis](https://gitea.tendokyu.moe/Hay1tsme/artemis) + (tested with master branch commit 31ca45fc68) + - Open a command line and navigate to the extracted artemis + folder. Run the following: + ``` + pip install -r requirements.txt + ``` + and ensure there are no errors. + - Copy the folder `example_config` and rename to `config` + - Enter `config` and open `core.yaml` in an editor. + - Replace `server: listen_address` with `0.0.0.0` + - Replace `server: hostname` with `YOUR_IPv4_Address` + - Replace `title: reboot_start_time` with `6:59` + - Replace `database: password` with `YOUR_DB_PASSWORD` + - Replace `aimedb: listen_address` with `0.0.0.0` + - Replace `aimedb: key` with `KEY` (FIND THE KEY) + + ??? tip "Finding IPv4 Address" + + Open a command promt. Type `ipconfig` and look for the IPv4 + address. Place those digits here otherwise you will get stuck + on the DNS(LAN) check. + + ??? note "Create Database Tables" + + Open a command line and navigate to the extracted artemis + folder. Run the following: + ``` + python dbutils.py create + ``` + Next import the songs and options into the database: + ``` + python read.py --game SDEZ --version 21 --binfolder /path/to/Sinmai_Data/StreamingAssets --optfolder /path/to/root/option/folder + ``` + After a successfuly import, we can check that database + tables are up-to-date: + ``` + python dbutils.py upgrade + ``` + We can now test by running: + ``` + python index.py + ``` + Start the game (start.bat) and it should now connect. To + verify, hold down `ENTER` at the start screen and it should + read the aime card in `DEVICES\aime.txt`. + + ??? tip "Autostart Artemis" + + Open `run` and type `shell:startup`. This will open + the location of startup programs. Create `artemis.bat` + in this folder and copy the following: + + ``` + @echo off + cd {Path to artemis} + start /min cmd /c "python index.py" + ``` + When you restart the PC, artemis will run + automatically. + +??? example "AquaDX" + + **TODO** - someone experienced with AquaDX needs to write this section + +### 7 - Further Configuration + +!!! tip "Input methods and controllers are covered in the [Controllers](controllers.md) page." + +!!! tip "Have any other issues?" + + Check out the [Troubleshooting](troubleshooting.md) and [Error Codes](../../../errorcodes/sega.md) pages. diff --git a/docs/games/maimai/buddies/troubleshooting.md b/docs/games/maimai/buddies/troubleshooting.md new file mode 100644 index 0000000..706f35f --- /dev/null +++ b/docs/games/maimai/buddies/troubleshooting.md @@ -0,0 +1,31 @@ +# MAIMAI BUDDIES + + +--- + +### 1 - Introduction + +!!! danger "Important - Read Carefully" + + This guide is created and maintained by volunteers. If you encounter + any errors in the guide or have trouble with any of the steps, please + [join the two-torial discord](https://discord.gg/cZRUmEPK78) and let + us know in the appropriate section. + + The guide is organized by numbered chapters which can be accessed from + the right sidebar. Each chapter contains collapsible sections with + the following labels and colors: + + !!! note "Mandatory - Must Read and Follow Steps Exactly" + + !!! question "Optional - Can Skip Steps" + + !!! example "Decide - Choose ONLY ONE from the Group" + + !!! tip "Info - Extra Information and Notes" + + !!! danger "Important - Read Carefully" + +--- + +### Coming Soon diff --git a/docs/img/maimai/buddies/buddies.png b/docs/img/maimai/buddies/buddies.png new file mode 100644 index 0000000..6c0e5fe Binary files /dev/null and b/docs/img/maimai/buddies/buddies.png differ diff --git a/docs/img/maimai/buddies/setup_aime.png b/docs/img/maimai/buddies/setup_aime.png new file mode 100644 index 0000000..08c262c Binary files /dev/null and b/docs/img/maimai/buddies/setup_aime.png differ diff --git a/docs/img/maimai/buddies/setup_appdir.png b/docs/img/maimai/buddies/setup_appdir.png new file mode 100644 index 0000000..28fa56a Binary files /dev/null and b/docs/img/maimai/buddies/setup_appdir.png differ diff --git a/docs/img/maimai/buddies/setup_cmd.png b/docs/img/maimai/buddies/setup_cmd.png new file mode 100644 index 0000000..7aef53e Binary files /dev/null and b/docs/img/maimai/buddies/setup_cmd.png differ diff --git a/docs/img/maimai/buddies/setup_dbeaver.png b/docs/img/maimai/buddies/setup_dbeaver.png new file mode 100644 index 0000000..f145cd0 Binary files /dev/null and b/docs/img/maimai/buddies/setup_dbeaver.png differ diff --git a/docs/img/maimai/buddies/setup_dbeaver2.png b/docs/img/maimai/buddies/setup_dbeaver2.png new file mode 100644 index 0000000..903fb06 Binary files /dev/null and b/docs/img/maimai/buddies/setup_dbeaver2.png differ diff --git a/docs/img/maimai/buddies/setup_dbeaver3.png b/docs/img/maimai/buddies/setup_dbeaver3.png new file mode 100644 index 0000000..018e1b6 Binary files /dev/null and b/docs/img/maimai/buddies/setup_dbeaver3.png differ diff --git a/docs/img/maimai/buddies/setup_rootdir.png b/docs/img/maimai/buddies/setup_rootdir.png new file mode 100644 index 0000000..9cb9750 Binary files /dev/null and b/docs/img/maimai/buddies/setup_rootdir.png differ diff --git a/docs/img/maimai/buddies/setup_rootdir2.png b/docs/img/maimai/buddies/setup_rootdir2.png new file mode 100644 index 0000000..79e392d Binary files /dev/null and b/docs/img/maimai/buddies/setup_rootdir2.png differ diff --git a/docs/img/maimai/buddies/setup_segatools.png b/docs/img/maimai/buddies/setup_segatools.png new file mode 100644 index 0000000..1c2140a Binary files /dev/null and b/docs/img/maimai/buddies/setup_segatools.png differ diff --git a/docs/img/maimai/buddies/setup_service.png b/docs/img/maimai/buddies/setup_service.png new file mode 100644 index 0000000..e8fdb1d Binary files /dev/null and b/docs/img/maimai/buddies/setup_service.png differ diff --git a/docs/img/maimai/buddies/setup_service2.png b/docs/img/maimai/buddies/setup_service2.png new file mode 100644 index 0000000..8a8abf5 Binary files /dev/null and b/docs/img/maimai/buddies/setup_service2.png differ diff --git a/docs/img/maimai/buddies/setup_sinmai.png b/docs/img/maimai/buddies/setup_sinmai.png new file mode 100644 index 0000000..4fd1c5b Binary files /dev/null and b/docs/img/maimai/buddies/setup_sinmai.png differ diff --git a/docs/img/maimai/buddies/setup_sinmai2.png b/docs/img/maimai/buddies/setup_sinmai2.png new file mode 100644 index 0000000..cd6c20e Binary files /dev/null and b/docs/img/maimai/buddies/setup_sinmai2.png differ diff --git a/docs/img/maimai/buddies/setup_sinmai3.png b/docs/img/maimai/buddies/setup_sinmai3.png new file mode 100644 index 0000000..4d9d9e0 Binary files /dev/null and b/docs/img/maimai/buddies/setup_sinmai3.png differ diff --git a/docs/img/maimai/buddies/setup_sinmai4.png b/docs/img/maimai/buddies/setup_sinmai4.png new file mode 100644 index 0000000..805606a Binary files /dev/null and b/docs/img/maimai/buddies/setup_sinmai4.png differ diff --git a/mkdocs.yml b/mkdocs.yml index 67c9e83..de4bcfb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -124,6 +124,11 @@ nav: - "Game Setup": "games/chunithmluminous/setup.md" - "Controllers": "games/chunithmluminous/controllers.md" - "Troubleshooting": "games/chunithmluminous/troubleshooting.md" + - "MAIMAI": + - "BUDDIES": + - "Game Setup": "games/maimai/buddies/setup.md" + - "Controllers": "games/maimai/buddies/controllers.md" + - "Troubleshooting": "games/maimai/buddies/troubleshooting.md" - NAMCO: - "Taiko no Tatsujin": - "Nijiiro": @@ -203,4 +208,4 @@ markdown_extensions: plugins: - search - - git-revision-date-localized \ No newline at end of file + - git-revision-date-localized