TaikoPythonTools/TaikoSongConversionTool/README.md
2024-07-10 00:13:40 +01:00

85 lines
6.6 KiB
Markdown

# Taiko no Tatsujin - Song Conversion Tool
Python based tool that can convert official songs over to some Taiko no Tatsujin games.
Current Version: v2b
### Supported Titles
| Game Title | Platform | Tag |Game Version | Song Limit | Supported? |
| ------------------------------ | ----------------------- | ------------------- | ----------------- | ---------------- | ------------------------- |
| Nintendo Switch Version | Nintendo Switch | NS1 (JP/ASIA) | v1.4.13 Only | 600 | ✅ |
| Drum 'n' Fun | Nintendo Switch | NS1 (EU/USA) | v1.4.13 Only | 600 | ✅ |
| Drum Session | PlayStation 4 | PS4 (EU/US) | v1.19 Recommended | 400 | ✅ |
| Drum Session | PlayStation 4 | PS4 (JP/ASIA) | v1.28 Recommended | 400 | ✅ |
| Pop Tap Beat | iOS, macOS, Apple TV | PTB (N/A) | Any | 200 | ✅ |
| Atsumete★Tomodachi Daisakusen! | Nintendo Wii U | WIIU3 (N/A) | Any | 225¹/425² | ✅ |
| Tokumori! | Nintendo Wii U | N/A | Any | Unknown | ❓ Works but Untested |
| Wii U Version! | Nintendo Wii U | N/A | Any | Unknown | ❓ Untested |
¹Song Limit due to texture limitations, assuming no other DLC is installed. Texture Quality set to "high" in `config.json`.
²Song Limit due to texture limitations, assuming no other DLC is installed. Texture Quality set to "low" in `config.json`.
### Unsupported Titles
| Game Title | Platform | Tag |Game Version | Supported? |
| ------------------------------ | ----------------------- | ------------------- | ----------------- | --------------- |
| V Version! | PlayStation Vita | PSV | Any | ⭕ PLANNED |
| Dokodon! Mystery Adventure | Nintendo 3DS | 3DS3 | Any | ⭕ PLANNED |
| Nijiiro Ver. | Arcade | AC16 | N/A | ❌ NOT PLANNED |
| Rhythm Festival | Nintendo Switch | NS2 (JP/ASIA) | N/A | ❌ NOT PLANNED |
| The Drum Master | PC, Xbox One, Series SX | TDMX, XB1 (N/A) | N/A | ❌ NOT PLANNED |
A version of this tool with all song data can be found elsewhere.
There's 3 options to sort songs by: ID (A-Z), Song Name (A-Z) and Genre
This is still a work in-progress, so please report any issues found to me, along with suggestions for features or game support.
### Prerequisites:
[Python 3.12.3](https://www.python.org/downloads/) or newer
tkinter installed through pip / `pip install tk`
sv_ttk installed through pip / `pip install sv_ttk`
cryptography installed through pip / `pip install cryptography`
pillow installed through pip / `pip install pillow`
pydub installed through pip / `pip install pydub`
[NVIDIA Texture Tools Exporter](https://developer.nvidia.com/texture-tools-exporter) installed and added to `PATH`
[ffplay](https://www.ffmpeg.org/download.html) installed in `PATH`.
Song Data properly converted to the format this tool expects, stored in a folder called `data` or `data_custom`.
Due to copyright reasons, etc. no song data will be provided with this tool, however you can use [TjaBatchConvert](https://github.com/cainan-c/TaikoPythonTools/tree/main/TjaBatchConvert) to convert custom charts to a format this tool expects.
### Known Issues
Atsumete★Tomodachi Daisakusen's song limit is due to it's texture limitations. In theory, if all game textures are also compressed, it could allow for more songs.
Scores may not save on Atsumete★Tomodachi Daisakusen, this is due to save file limitations.
### Additional Features
Multi-Language Support. (Can be set in config.json, supports en(English) and jp(Japanese)).
Custom Song Data loading through the "data_custom" folder. (Path can be changed in config.json).
Audio Quality for NS1 and PS4 can be set using `audio_quality` in `config.json`, `high` uses the default audio format for said game, while `low` sets the audio format to `BNSF`, which is Single Channel Mono.
Texture Quality for Wii U 3 can be set in `config.json`, `high` uses `DXT5/BC3` while `low` uses `DXT1/BC1a`.
![song conversion tool](https://i.imgur.com/YRXb0NA.png)
## Tools Used
at9tool - Used to convert audio to the Sony AT9 format.
DRPRepacker from [Pokken-Tools](https://github.com/Sammi-Husky/Pokken-Tools) - Used to package Wii U `musicInfo.xml` files.
[VGAudioCli](https://github.com/Thealexbarney/VGAudio) - Used to convert audio to Nintendo IDSP and Nintendo OPUS.
ACB Editor from [SonicAudioTools](https://github.com/blueskythlikesclouds/SonicAudioTools/tree/master/Source/AcbEditor) - Used to create `.acb` files for Pop Tap Beat.
[G.722.1 Reference Tool](https://www.itu.int/rec/T-REC-G.722.1-200505-I/en) - Used to convert audio to Polycom Siren 14
### Special Thanks
Steam User [descatal](https://steamcommunity.com/id/descatal) for writing [this](https://exvsfbce.home.blog/2020/02/04/guide-to-encoding-bnsf-is14-audio-files-converting-wav-back-to-bnsf-is14/) guide on how to create/encode `bnsf` files.
[korenkonder](https://github.com/korenkonder) for compiling the G.722.1 tool used in this project.
[Kamui/despairoharmony](https://github.com/despairoharmony) for some of the Nijiiro `.nus3bank` template research.
[rdbende](https://github.com/rdbende) for the [Sun Valley ttk Theme](https://github.com/rdbende/Sun-Valley-ttk-theme) used in this project.
[jam1garner](https://github.com/jam1garner) for [Smash-Forge](https://github.com/jam1garner/Smash-Forge), which it's code was used as a reference for generating the `.nut` files.
## Related Tools
[tja2fumen](https://github.com/vivaria/tja2fumen)
[TjaOffsetNeutralise](https://github.com/cainan-c/TaikoPythonTools/tree/main/TjaOffsetNeutralise)
[TjaBatchConvert](https://github.com/cainan-c/TaikoPythonTools/tree/main/TjaBatchConvert)
## Taiko no Tatsujin Modding Server
For help, questions inquries feel free to check out my [Taiko Modding Discord Server](https://discord.gg/HFm37aA5zr)