diff --git a/README.md b/README.md index 2d659be..382ef0e 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,22 @@ # TekaTeka - Custom Song Loader for Taiko no Tatsujin: Rhythm Festival (WIP) - + +Custom Song Loader for Taiko no Tatsujin: Rhythm Festival + # Requirements - Visual Studio 2022 or newer\ + +[BepInEx be 697](https://builds.bepinex.dev/projects/bepinex_be) or [BepInEx 6.0.0-pre.2](https://github.com/BepInEx/BepInEx/releases/tag/v6.0.0-pre.2)\ Taiko no Tatsujin: Rhythm Festival - - + # How to use - This project it's in very early stages, so don't expect anything functional - TODO - -# Build - Install [BepInEx be 697](https://builds.bepinex.dev/projects/bepinex_be) or [BepInEx 6.0.0-pre.2](https://github.com/BepInEx/BepInEx/releases/tag/v6.0.0-pre.2) into your Rhythm Festival directory and launch the game.\ - This will generate all the dummy dlls in the interop folder that will be used as references.\ - Make sure you install the Unity.IL2CPP-win-x64 version.\ - Newer versions of BepInEx could have breaking API changes until the first stable v6 release, so those are not recommended at this time. - - Attempt to build the project, or copy the .csproj.user file from the Resources file to the same directory as the .csproj file.\ - Edit the .csproj.user file and place your Rhythm Festival file location in the "GameDir" variable. + +[Install BepInEx](https://docs.bepinex.dev/articles/user_guide/installation/index.html)\ +Download the latest version of [`RF.TekaTeka.dll`]() from the [releases page](https://github.com/Renzo904/TekaTeka/releases) and paste it on `(GameFolder)\BepInEx\plugins`\ +Place all your mods on the folder named `TekaSongs` created the the first time you execute the mod + +# Contributing + +[CONTRIBUTING.md](docs/CONTRIBUTING.md) + +# Mod Creation + +[MODS.md](docs/MODS.md) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000..82a6a55 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,19 @@ +# Requirements + +- Visual Studio 2022 +- BepInEx Installed +- Taiko no Tatsujin: Rhythm Festival + +# Build + +Install [BepInEx be 697](https://builds.bepinex.dev/projects/bepinex_be) or [BepInEx 6.0.0-pre.2](https://github.com/BepInEx/BepInEx/releases/tag/v6.0.0-pre.2) into your Rhythm Festival directory and launch the game.\ + This will generate all the dummy dlls in the interop folder that will be used as references.\ + Make sure you install the Unity.IL2CPP-win-x64 version.\ + Newer versions of BepInEx could have breaking API changes until the first stable v6 release, so those are not recommended at this time. + +Attempt to build the project, or copy the .csproj.user file from the Resources file to the same directory as the .csproj file.\ + Edit the .csproj.user file and place your Rhythm Festival file location in the "GameDir" variable. + +# Format + +We use [Microsoft Style Guide](https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/code-style-rule-options) with slightly modifications, for convenience, thee is a [pre-commit](https://pre-commit.com/) config which uses clang-format before each commit diff --git a/docs/MODS.md b/docs/MODS.md new file mode 100644 index 0000000..2542cf5 --- /dev/null +++ b/docs/MODS.md @@ -0,0 +1,41 @@ +# Creating Mods + +Please, keep in mind that every specification here is not definitive and is subject to change.\ +Each mod or Song Pack it's saved on the folder `TekaSongs`, each one in a separate folder. + +## Folder structure + +All the files and folders inside the mod will have the same structure as the `StreamingAssets` folder of the original games, that is: + +``` +TekaSongs/ +└── my-awesome-mod/ + ├── fumen/ + │ └── chart files + ├── fumencsv/ + │ └── practice files + ├── ReadAssets/ + │ └── song database + └── sound/ + └── sound files +``` + +## Music files + +Every file can be either Encrypted or Decrypted, and that TekaTeka will assume the later by using the file extension + +| Folder/File type | Description | Example | Encrypted Extension | Decrypted Extension | +| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | ------------------- | ------------------- | +| `fumen/{Chart file}` | File containing the chart of the song, one for each difficulty | `fumen/clscam_e.bin` `fumen/clscam_h.bin` `fumen/clscam_m.bin` | `*.bin` | `*.fumen` | +| `fumencsv/{Practice Division}` | CSV File containing the divisions used for practice mode | `fumencsv/clscam.bin` | `*.bin` | `*.csv` | +| `sound/SONG_{Full song file}` | This file contains the song file on the Criware proprietary format [ACB](https://game.criware.jp/manual/native/adx2_en/latest/criatom_basics_acb.html) | `sound/SONG_clscam.bin` | `*.bin` | `*.acb` | +| `sound/PSONG_{Preview song file}` | File on the same proprietary format, but used for preview on the select song scree | `sound/PSONG_clscam.bin` | `*.bin` | `*.acb` | +| `ReadAssets/musicinfo.bin` | Json file containing all the information about the songs like titles, file names, difficulties, etc. | `ReadAssets/musicinfo.bin` | `musicinfo.bin` | `musicinfo.json` | + +TekaTeka will have this priority when searching songs + +``` +1- Original file from the StreamingAssets folder +2- Decrypted Modded file +3- Encrypted Modded file +```