Ads keep us online. Without them, we wouldn't exist. We don't have paywalls or sell mods - we never will. But every month we have large bills and running ads is our only way to cover them. Please consider unblocking us. Thank you from GameBanana <3

Editing the BFSTP audio format

A Tutorial for The Legend of Zelda: Breath of the Wild (WiiU)

No ads for members. Membership is 100% free. Sign up!

Updates

menu
New Method 8mo
  • Addition Added a step in the Hex edit method to improve accuracy of files
  • Addition Added new method involving the bfstp-fixer script by NanobotZ

Fixing original sound playing in music mods



This is a tutorial for editing the .bfstp (Binary caFe STream sound Prefetch) audio format so they will (hopefully) work correctly in game. The bfstp, explained to the best of my knowledge, basically contains the data for how the Stream music (.bfstm) plays. BFSTPs contain about one second of audio as well and since the game reads the bfstp first, that part of audio plays before playing the bfstm. This is why BGM mods have the issue of the original sound playing before the modded one plays.

To ensure the least amount of problems make sure your audio's sample rate matches with the game's original audio and has the same number of tracks.

BfstpFixer Method

This method utilizes bfstpfixer.py by NanobotZ to create bfstp files automatically.
Please Note: This tool has only been tested on the Wii U version of Breath of the Wild. This may not work on the Switch version or other games such as Mario Kart 8 yet.


What you need:
  1. A copy of your custom made .bfstm.
  2. Python 3.7
  3. BCFSTM-BCFWAV-Converter by Aboood40091 (Source code)
  4. bfstpfixer.py by NanobotZ


This tool should be very simple. Place the script in the same directory where BCFSTM-BCFWAV-Converter and your bfstm are stored. Then create a .bat file with the following code

for /r %%i in (*.bfstm) do python main.py -format FSTP -bom 0 "%%i" 
for /r %%i in (*.bfstp) do python bfstpfixer.py "%%i"
Run the bat file and you should get two bfstp files. Take the one with _fixed in the name, remove that part from the file name, and inject the bfstp into a .bars as you would with any bfwav edits.

Hex Editing Method


What you need:
  1. A copy of your custom made .bfstm and the corresponding .bfstp file. (.bfstp’s are stored in bars files which can be found in the Sound folder, or SARC archives in the Pack and Event folders) The bfstm should share the same name as the bfstp.
  2. Python 3.7
  3. BCFSTM-BCFWAV-Converter by Aboood40091 (Source code)
  4. HxD



1. Convert the copy of your custom .bfstm into bfstp format with the BCFSTM-BCFWAV-Converter. Put it in the same folder that main.py is in and use this command for /r %%i in (*.bfstm) do python main.py -format FSTP -bom 0 "%%i" or make a .bat file and run it.


2. Open both your newly made bfstp and the original bfstp in HxD.

(Left: Original , Right: Custom)

3. In your custom bfstp you will see a part that says “SEEK…” Highlight everything from there until “PDAT” and remove it.


4. Copy the INFO section from the custom bfstp to the original.

5. Scroll down to the end of the original bfstp and keep track of the last line number.


6. On your custom bfstp, start 2 lines below where “PDAT” is and highlight everything until you reach the same line as the last line of the original bfstp. Copy everything that was highlighted.


7. Now highlight the same lines on the original bfstp and paste what you copied into the original. Make sure that the lines match up and that the bsftp data stays the same in terms of length.


8. Save the edited bfstp and inject it into a .bars file as you would with any bfwav edits.



Other Notes:
  • If you are doing this with Switch files, make sure you have a bfstm made for the Switch and the Switch version of the bfstp. Use the command for /r %%i in (*.bfstm) do python main.py -format FSTP -bom 1 "%%i" when converting your bfstm.

Sign up to access this!

Embed

menu
Share banner
Image URL
HTML embed code
BB embed code
Markdown embed code

Credits

Tutorial Writter
notmuhHoriz
notmuhHoriz Joined 1y ago
Offline
Tool Devs
Aboood40091
BCFSTM-BCFWAV-Converter
NanobotZ
NanobotZ Joined 9mo ago
Offline
132 points Ranked 62859th
bfstpfixer.py
Special Thanks
Yainskofso
Yainskofso Joined 2y ago
Offline
909 points Ranked 41403rd
7 medals 1 rare
  • Returned 1000 times Medal icon
  • One month a member Medal icon
  • Returned 100 times Medal icon
  • 6 months a member Medal icon
  • Submission featured Medal icon
  • 1 year a member Medal icon
Help for discovering this fix

Submitter

notmuhHoriz avatar
notmuhHoriz Joined 1y ago
Offline
notmuhHoriz
Creator
Sign up to access this!
Sign up to access this!
Sign up to access this!

Game

Sign up to access this!

Category

Details

Difficulty Level
Intermediate

Attributes

Share

  • Share on Reddit
  • Share on Twitter
  • Share on Facebook
  • Today's Pick
    Featured on Jan 21 2019
  • 4
  • 6.9k
  • 3
  • 10mo
  • 5mo
  • 8mo

More Sound Tutorials