- Extracting the .bars File
- Extracting Sounds from the .bars File
- Setting up to Inject
- Converting to .bfwav
- Injecting the new Voice Clips
- Injecting the new PlayerVoice.bars
INFO:(Repost) This process will take quite a bit of time, but it is not very difficult. With more tools presumably coming out, the process should become easier over time. You will need to find the programs and files listed below, because some things may not be allowed on this site. All of the downloads, however, can be found with a quick Google search.
1. Extracting the .bars FileThis step is the easiest one, all you need is the TitleBG.pack file, (found in content/Pack) as well as an extractor of your choice. (Wexos's Toolbox, BOTW Unpacker, WiiUZip) If you already have your PlayerVoice.bars file, you can skip this. I would recommend Wexos or BOTW Unpacker. Open the TitleBG.pack file in your program of choice, and look for the file PlayerVoice.bars under sound/resource. When you find it, extract it and place it wherever you'd like.
2. Extracting Sounds from the .bars FileTo extract the .bfwav files from PlayerVoice.bars, you will want BOTW Bars Extractor. Just drag the .bars onto the .exe and it will extract the sounds. You should have 267 voice clips from PV000_00 to PV721_00. If you want to listen to these clips, you want foobar2000 and the vgmstream decoder. If you have installed foobar, you should just have to click on the component once downloaded and it will be added. You can now listen to .bfwav files.
3. Setting up to InjectThis is the most difficult part. Well, it's more tedious than difficult, and will take quite a bit of time. However, I have created a list that will help with it. It lists (almost) every voice clip and what it's used for in the game. You may also want to convert the .bfwavs to .wav files, so it's easier to find the length of the sounds. If you decide to do so, open all of the sounds in foobar, select them all, right click and convert.
First, you're going to need your sound files that you want to add into the game. After you have them, you must make sure they are WAV 16-bit files. If they are not, they will not work, or if they're 32 bit wavs they will be very loud, and probably also won't work. You can change their filetype in Audacity, or another program. Also, you're going to want to change the Hz of the new audio file to the same Hz as the old one. You can see the old file's Hz in foobar by opening the bfwav, and change the new file's Hz in a program such as Audacity. Most are 28000 Hz, but there are some with 24000.
Now, you're going to have to set a .wav for every .bfwav. Now is a good time to mention that your new audio file cannot be longer than the original one. Example, if there is a voice clip that is very short, like PV320_03, and you wanted to replace it with a long voice clip, you can't... yet. If you are unsure of how long the original or new files are, you could always check in Audacity or another program. You could also cut out empty space (parts without sound) from your new file if you want to make it fit. When you find a sound that fits or that you want to use, copy and paste it into a new folder, rename it to the same name as the original file. Repeat this for ALL 267 voice clips.
4. Converting to .bfwavThis step is relatively simple. Use the converter found in the Mario Kart 8 Voice tools, under BFWAV to WAV. (It says that, but it converts 16-bit wav to .bfwav) Drag and drop your files (if it doesn't convert them, try dragging less) onto NW4F_WaveConverter.exe, and it should put out files called "PVXXX_XX.dspadpcm.bfwav" dspadpcm is another file type, but it does not concern this tutorial. You can test your new .bfwav files in foobar2000. If the audio is very loud and distorted, then you must've used WAV 32-bit files. Remove the .dspadpcm from all the new .bfwav files, so they look like "PVXXX_XX.bfwav" Now you are ready to inject the new files into the .bars. The program that injects .bfwav files will automatically pad your new files (pad = make them the same size as the original) so if they're a smaller size than the originals, you are fine.
5. Injecting the new Voice ClipsYou must have a folder with all of the ORIGINAL voice clips in .bfwav form, a folder with all the NEW voice clips in .bfwav form, and the original .bars file. To inject the new files, you can use a python script called RePackBars.py found in BOTW Tools by aaaboy97. Download it, and find RepackBars.py. Shift + right click in the folder containing RePackBars.py and click 'Open Command Window Here.' The readme.txt file will tell you how to inject, but here it is anyways. [
If you are using python 3.7 and it says you are using the incorrect arguments even though they're correct, add "python" without quotes to the beginning so it looks like python RepackBars.py and see if it works. If it doesn't, download python 3.6 and try the same thing. Now, assuming you've done the steps correctly, it should print 267 messages. It will say 3 different types of messages. If it says written successfully, that file is good. If it says it is too large, then you will need to make the new one smaller than the original audio clip, (done by making it shorter, usually.) It may also say there is no new file. It should write to a new file in the same directory as the python script called output.bars. You now have your modded PlayerVoice.bars, and now you need to insert it into TitleBG.pack.