Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Taiko no Tatsujin V Version - Add Custom DLC
- By DespairOfHarmony
- UPDATE 3 (01/2021)
- I've added okku and wwcxtool to the tutorial.
- UPDATE 2 (08/2020)
- I've added shin-uti scoring references and song quality comparison
- UPDATE 1
- I've rewrite a tool to make easier to inject into Taiko V nus3bank files, you can check it here:
- https://github.com/despairoharmony/NUS3BANK-EditorAT9 (just need to place at9tool.exe at exeLib folder)
- Here it's a tutorial for creating custom dlc to Taiko V Version
- You'll need:
- Any decrypted DLC from Taiko V to use as a base (you don't need to replace it, you can copy and work in a new folder)
- A modded Vita with rePatch
- at9tool.exe (PS Vita SDK)
- vgmstream
- Kuriimu (or anything that compress in LZ11)
- psvita-txptool.exe (pre-compiled mirror: https://mega.nz/#!ZCgz2CbA!EPiYAPBESvmFAKRbPcrFNYt-kyzEkhQ1S80qlkJkKJI)
- taiko_wii_4+_fumen_endianness_converter.py (you can find it here: https://pastebin.com/bNBQdeii )
- HxD or any hex editor
- Knowledge in hex editing (know the difference between Big Endian and Little Endian)
- Phase 1 - Chart
- Here we are going to manage with the song charts, those will be located at:
- DLCFOLDER\_data\fumen\[SONGID]\solo\
- [SONGID] is the 6 char (or less) id given by namco
- Inside "solo" folder you'll need to have these 4 files (or 5 if song has Ura):
- [SONGID]_e.bin (Easy mode)
- [SONGID]_h.bin (Hard mode)
- [SONGID]_m.bin (Oni mode)
- [SONGID]_n.bin (Normal mode)
- * For Ura songs the file name is: ex_[SONGID]_m.bin (In some sources they are found as [SONGID]_x.bin)
- There's no way for now to create these files from zero (now its possible, check Okku: https://www.teampapafox.org/projects/okku3ds.html ), what we are doing is injecting charts from other taiko versions, most of them can be found at respective fumen folder from each version
- Taivo V only support solo charts, duet charts have an _1 or _2 on their file name (ex: [SONGID]_m_1.bin)
- Here is a reference list for chart endianness: (Taiko V only support Little Endian)
- Big Endian Charts: Arcade (only from Namco 357 tested); all Wii U versions
- Little Endian Charts: Switch; PS4; iOS[1]; 3DS (already compressed in LZ11)
- - Converting Big Endian (BE) charts to Little Endian (LE) charts (if already LE, skip to Compressing in LZ11)
- To convert from BE to LE, we are going to use a python script: taiko_wii_4+_fumen_endianness_converter.py
- Paste the script on the folder that the charts are located, and run the following on terminal:
- py taiko_wii_4+_fumen_endianness_converter.py bl input.bin output.bin
- Execute the same code for all files in the folder, remember to use the output file on the next step
- - Compressing in LZ11 (if it's 3DS chart you are ready to go)
- Usually Taiko V loads songs with L7C compression, but for some reason supports LZ11, and this is the compression that we are going to use, since its more easy to deal with it. There are 2 ways to deal with it:
- 1) Kuriimu way: We are going to open Kuriimu, on the top bar click on Tools, and then:
- Compression -> Nintendo -> Compress -> LZ11
- Select the uncompressed file and save the compressed file on "solo" folder.
- 2) Batch way: We can also use wwcxtool.exe to compress with LZ11, you can run the following command:
- wwcxtool.exe /c1 input.bin output.bin
- Then get the output file to use on "solo" folder
- Phase 2 - Sound
- UPDATE: This part is now easily made by my new tool, available here:
- https://github.com/despairoharmony/NUS3BANK-EditorAT9
- You need to place the at9tool.exe at exeLib folder.
- First you go to File -> Open NUS3BANK and select a base song (select a not modded file from V version, otherwise you'll ger a error)
- Then left click at .at9 file and click Replace
- Select the audio source and wait till a window pop up, click Yes and OK
- Then go to File -> Save as... and save with the following model name: DSONG_[SONGID]
- Now you are good to go ;)
- --Outdated tutorial--
- Sounds are located inside a .nus3bank container, and are in .at9 format
- The are located in the following folder:
- DLCFOLDER\_data\sound\song\DSONG_[SONGID].nus3bank
- I highly recomend to rip the music from the version that you have used in chart to avoid bad timing, most of the are in .nus3bank containers [2], but with other sound format that Vita doesn't support
- To get the wav files from other taiko version, you'll use vgmstream, just drag and drop the sound file on test.exe, and it will output a .wav file for you
- Then we are going to convert the .wav file using at9tool (from Sony SDK), run the following command:
- at9tool -e -br 192 input.wav output.at9
- Now we are going to inject the .at9 file in the .nus3bank container with hex editing
- Open the output.at9 with HxD, press Ctrl+A to select everything, and finde the size on the bottom bar
- Write the size in any notepad, now we are going to manually convert a BE to a LE, watch the example:
- 333864 = 00 33 38 64 (BE) -> 64 38 33 00 (LE) = 643833
- Basically we are going to reverse the order of pairs in 4 blocks
- Now open the .nus3bank container on the HxD, and replace on the following adress:
- 0x4C, 0xC70, 0xD1C -> place the file size in LE
- 0xA5, 0xC55 -> place the file name of the container (DSONG_[SONGID])
- Then copy all bytes of the .at9 file and paste on the adress 0xD20 at .nus3bank container, you can delete everything after the pasted bytes of the .at9 file
- --End of Outdated tutorial--
- Phase 3 - Images
- Song names in the song selection screen and in gameplay are stored as textures.
- They are located at:
- DLCFOLDER\_data\system\songtitle\
- Here we have 2 types of files, and 3 textures
- Types:
- .anm - Animation file
- .txp - Texture File
- Textures:
- game - Song title shown during the gameplay
- select_main - Song title shown at the select screen
- select_sub - Song sub-title shown when song is select (optional)
- - Hex editing the animation file
- The only thing we are doing here is injecting the song name at the animation files
- The string is located at the adress 0x90, and its the following:
- Anime_[SONGID]
- Just put your [SONGID] and save the file.
- - Customizing the texture
- To customize the textures we are going to use psvita-txptool to extract and recreate the .txp files
- First drag and drop .txp file to psvita-txptool.exe, and will generate a folder with the same texture name and a .png inside of it
- Edit the .png image with any image editor you like (I suggest: Fireworks; to write the text i use the font DFP勘亭流)
- After editing the image drag and drop the folder to psvita-txptool.exe, and it will return the modded .txp file, paste back to the folder
- Phase 4 - Data
- There is 2 files that define the data of the sound to be played, they are located at:
- DLCFOLDER\_data\system\
- I'll give the adress to modify in each file, their sizes and what they mean
- - SongInfo.dat
- 0x2C -> Shin-uti scoring in easy (kantan) mode (Size: 4 bytes in LE)
- 0x30 -> Shin-uti scoring in normal (fuutsu) mode (Size: 4 bytes in LE)
- 0x34 -> Shin-uti scoring in hard (muzukashi) mode (Size: 4 bytes in LE)
- 0x38 -> Shin-uti scoring in extreme (oni) mode (Size: 4 bytes in LE)
- 0x3C -> ID number for sound [3] (Size: 2 bytes in LE) - Last taiko dlc use id 13F (3F 10 in LE), just follow the sequence - Limit is 1F3
- 0x40 -> Song Category (Size: 1 Byte)
- 00 - JPOP
- 01 - Vocaloid
- 02 - Variety
- 03 - Namco Original
- 04 - Game Music
- 05 - Classic
- 06 - Anime
- 0x44 -> Branch Easy (00 for false, 01 for true; Size: 1 byte)
- 0x45 -> Branch Normal (00 for false, 01 for true; Size: 1 byte)
- 0x46 -> Branch Hard (00 for false, 01 for true; Size: 1 byte)
- 0x47 -> Branch Oni (00 for false, 01 for true; Size: 1 byte)
- 0x48 -> Number of Stars for Easy (01 to 0A; Size: 1 byte)
- 0x49 -> Number of Stars for Normal (01 to 0A; Size: 1 byte)
- 0x4A -> Number of Stars for Hard (01 to 0A; Size: 1 byte)
- 0x4B -> Number of Stars for Oni (01 to 0A; Size: 1 byte)
- From adress 0x50 and beyond replace the following patterns with the [SONGID]
- - SL_[SONGID]
- - DSONG_[SONGID]
- - [SONGID] for 3 times after DSONG
- - MusicInfo.dat
- 0x14 - Time that sound will play at select screen (in miliseconds; size: 4 bytes in LE)
- 0x20 - DSONG_[SONGID]
- Remember: If the song has Ura, use as a base a song that contains Ura, and follow those steps at SongInfo.dat
- - SongInfo.dat (for Ura Songs only)
- 0x2C -> Shin-uti scoring in easy (kantan) mode (Size: 4 bytes in LE)
- 0x30 -> Shin-uti scoring in normal (fuutsu) mode (Size: 4 bytes in LE)
- 0x34 -> Shin-uti scoring in hard (muzukashi) mode (Size: 4 bytes in LE)
- 0x38 -> Shin-uti scoring in extreme (oni) mode (Size: 4 bytes in LE)
- 0x3C -> ID number for sound [3] (Size: 2 bytes in LE) - Last taiko dlc use id 13F (3F 10 in LE), just follow the sequence - Limit is 1F3
- 0x40 -> Song Category (Size: 1 Byte)
- 00 - JPOP
- 01 - Vocaloid
- 02 - Variety
- 03 - Namco Original
- 04 - Game Music
- 05 - Classic
- 06 - Anime
- 0x44 -> Branch Easy (00 for false, 01 for true; Size: 1 byte)
- 0x45 -> Branch Normal (00 for false, 01 for true; Size: 1 byte)
- 0x46 -> Branch Hard (00 for false, 01 for true; Size: 1 byte)
- 0x47 -> Branch Oni (00 for false, 01 for true; Size: 1 byte)
- 0x48 -> Number of Stars for Easy (01 to 0A; Size: 1 byte)
- 0x49 -> Number of Stars for Normal (01 to 0A; Size: 1 byte)
- 0x4A -> Number of Stars for Hard (01 to 0A; Size: 1 byte)
- 0x4B -> Number of Stars for Oni (01 to 0A; Size: 1 byte)
- 0x78 -> Shin-uti scoring in ultra extreme (ura) mode (Size: 4 bytes in LE)
- 0x7C -> ID number for Ura sound (Size: 2 bytes in LE) - Don't use the same ID of 0x3C
- 0X7E -> Mirror 0x3C vaule (Size: 2 bytes in LE)
- 0x80 -> Ura Song Category (Size: 1 Byte) - Reffer to 0x40
- 0x87 -> Branch Ura (00 for false, 01 for true; Size: 1 byte)
- 0x8B -> Number of Stars for Ura (01 to 0A; Size: 1 byte)
- From adress 0x90 and beyond replace the following patterns with the [SONGID]
- - SL_[SONGID]
- - DSONG_[SONGID]
- - [SONGID] for 3 times after DSONG
- - SL_EX_[SONGID]
- - DSONG_[SONGID]
- - [SONGID]; ex_[SONGID]; [SONGID]
- Sound Quality Comparison
- Source: Format; Sample Rate; Bitrate; Delay
- wiiU: IDSP 44,1khz 403kbps
- PS4: BNSF 48khz 256kbps +20ms
- AC: AT3 44,1khz 256kbps
- Vita: AT9 48khz 192kbps
- Switch: OPUS 48khz 166kbps
- iOS: M4A 44,1khz 131kbps
- 3DS: AAC 32khz 96kbps -30ms
- Notes
- [1] - iOS charts and audio files ate all inside the .dat file - check here: https://pastebin.com/Lghqm9iY
- [2] - 3DS songs have bad audio quality, I suggest to seek another version of the song file if avaible
- [3] - to see all available ID's to be filled, i've made a spreadsheet here: https://drive.google.com/file/d/1xu4iqCPzawqSqE_YliYam1xLuIo1SZga/view?usp=sharing
Add Comment
Please, Sign In to add comment