Skip to content

Fluto/TakoTako

Repository files navigation

TakoTako

This is a mod for Taiko no Tatsujin: The Drum Master
Currently has the features:

  • Auto sign-in into xbox
  • Skip splash screen
  • Skip DLC check screen
  • Allows custom official tracks or TJAs to be loaded into the game
  • Override songs names to a certain language than the default one
  • Allows use of the Hori Taiko Drum

Supported Versions

Supported Versions

- Mono: 1.1.0.0 - 1.2.2.0

- Il2CPP: 1.3.0.0 - 1.9.0.0


Installation

  1. Install the game via the xbox app to a directory of your choice
  2. Download BepInEx.

If you're using a newer version of Taiko 1.3.0.0 or higher (you probably are) download the IL2CPP version BepInEx_UnityIL2CPP_x64_XXXXX.zip.If you're using a downgraded version of Taiko (1.2.2.0 on lower) download the "Mono" build, called something like BepInEx_UnityMono_x64_XXXXX.zip.

If you are upgrading from TakoTako v3.1.0 make sure you grab the latest BepInEx build as this mod requires the newest version (at the time of writing #665 6aabdb5 is the latest build)

  1. Go to where you installed your game, for example C:\XboxGames\T Tablet\Content
  2. Paste all of the files from the .zip from step 5 into this folder (It will look something like this)
  3. We now need to give special permissions to the BepInEx folder. To do this, right click it, click on Properties, go to the Security tab, Click on the Advanced button, Click Change at the top, Under Enter the object name to select field type in your username and click Check Names. If the text doesn't become underscored that means you have entered the incorrect username. Then press Ok on that window to dismiss it. Going back to the Advanced Security Settings Window tick Replace owner on subcontainers and objects then finally press Apply.
  4. Run Taiko no Tatusjin The Drum Master once, then close it. This will generate some files
  5. Look in your game's folder again, new files will have been generated under .\BepInEx\plugins
  6. Download my patch. Once again download the IL2CPP version if you're on a newer version of Taiko, otherwise grab the Mono version.
  7. Extract the com.fluto.takotako folder from the download in step 10 and paste it into the .\BepInEx\plugins folder
  8. And you're done!

Configuration

After installing the mod, and running the game it will generate files in .\BepInEx\config. Open com.fluto.takotako.cfg to configure this mod Here you can enable each individual feature or redirect where custom songs will be loaded from

Custom Songs

With this feature you can inject custom songs into the game! To begin place custom songs in SongDirectory specified in your configuration file, by default this is %userprofile%/Documents/TakoTako/customSongs Each song must have it's own directory with a unique name. These songs can be nested within folders.

The folder must have this structure:

Offical Songs
-- [MUSIC_ID]
---- data.json (this contains the metadata for the track)
---- song_[MUSIC_ID].bin (this is a raw .acb music file, this is a CRIWARE format)
---- [MUSIC_ID]_e.bin (all of these items below are unencrypted Fumens, which formats how the song is played)
---- [MUSIC_ID]_e_1.bin
---- [MUSIC_ID]_e_2.bin
---- [MUSIC_ID]_h.bin
---- [MUSIC_ID]_h_1.bin
---- [MUSIC_ID]_h_2.bin
---- [MUSIC_ID]_m.bin
---- [MUSIC_ID]_m_1.bin
---- [MUSIC_ID]_m_2.bin
---- [MUSIC_ID]_n.bin
---- [MUSIC_ID]_n_1.bin
---- [MUSIC_ID]_n_2.bin
---- [MUSIC_ID]_x.bin
---- [MUSIC_ID]_x_1.bin
---- [MUSIC_ID]_x_2.bin

TJA
-- [MUSIC_ID]
---- [MUSIC_ID].tja
---- [MUSIC_ID].ogg or .wav

Genre override
e.g. this will override the songs to pop
-- 01 Pop
---- [MUSIC_ID]
------ [MUSIC_ID].tja
------ song_[MUSIC_ID].ogg or .wav
data.json Format
{
  // Music Info
  int uniqueId; (This has to be a unique int, the mod will handle clashes, but it's best to generate a random int)
  string id; (This is the MUSIC_ID, this also has to be unique, because it's the same as the folder structure this file is in)
  int order; (default sorting order)
  int genreNo; (Genre enum [Pops 0, Anime 1, Vocalo 2, Variety 3, Children 4, Classic 5, Game 6, Namco 7])
  bool branchEasy; (does this difficulty have a branch?, this will need to align with the fumen files)
  bool branchNormal; (does this difficulty have a branch?, this will need to align with the fumen files)
  bool branchHard; (does this difficulty have a branch?, this will need to align with the fumen files)
  bool branchMania; (does this difficulty have a branch?, this will need to align with the fumen files)
  bool branchUra; (does this difficulty have a branch?, this will need to align with the fumen files)
  int starEasy; (star difficulty)
  int starNormal; (star difficulty)
  int starHard; (star difficulty)
  int starMania; (star difficulty)
  int starUra; (star difficulty, set to 0 for unused)
  int shinutiEasy; 
  int shinutiNormal;
  int shinutiHard;
  int shinutiMania;
  int shinutiUra;
  int shinutiEasyDuet;
  int shinutiNormalDuet;
  int shinutiHardDuet;
  int shinutiManiaDuet;
  int shinutiUraDuet;
  int scoreEasy; 
  int scoreNormal;
  int scoreHard;
  int scoreMania;
  int scoreUra;

  bool areFilesGZipped; (are the music and fumen files gzipped? this saves file space and is done automatically when converting TJAs)

  // Song Info
  int previewPos;
  int fumenOffsetPos;
  
  // Text Info
  TextEntry songName; (Song Title - e.g. A Cruel Angel's Thesis)
  
  TextEntry songSubtitle; (Origin of the song - e.g. From \" Neon Genesis EVANGELION \")
  
  TextEntry songDetail; (Extra details for the track, sometimes used to say it's Japanese name - e.g. 残酷な天使のテーゼ)
}

TextEntry {
  
    string text;
    int font; (0 == Japanese, 1 == English, 2 == Traditional Chinese, 3 == Simplified Chinese, 4 == Korean)

    // Langauge overrides
    string jpText; (langauge override for 日本語 text)
    int jpFont; (langauge override for 日本語 text)
    string enText; (langauge override for English text)
    int enFont; (langauge override for English text)
    string frText; (langauge override for Français text)
    int frFont; (langauge override for Français text)
    string itText; (langauge override for Italiano text)
    int itFont; (langauge override for Italiano text)
    string deText; (langauge override for Deutsch text)
    int deFont; (langauge override for Deutsch text)
    string esText; (langauge override for Español text)
    int esFont; (langauge override for Español text)
    string tcText; (langauge override for 繁體中文 text)
    int tcFont; (langauge override for 繁體中文 text)
    string scText; (langauge override for 简体中文 text)
    int scFont; (langauge override for 简体中文 text)
    string krText; (langauge override for 영어 text)
    int krFont; (langauge override for 영어 text)
}

TJA Format

This project features encoding detection and should be able to handle both SHIFT-JIS and UTF-8 encoded TJAs. For extracting SHIFT-JIS (Japanese) format zip files, under windows you can use a program like bandizip which supports changing the codepage to Japanese. Under linux you can use something to this effect: export LANG=ja_JP followed by 7z x path/to/zip. This will correct the mojibake (garbled file names) and ensure that the song file matches the WAVE: field in the provided TJA.


Contributers

(to add!)


Credits

Licensing

Uses the following licensed libraries.