GameBanana shows no ads to members. Sign up now!
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

How to get PERFECT custom music

A Tutorial for Mario Kart 8 Deluxe

Updates

Edited guide: 1mo
  • - Finally updated the guide! Now uses some more noob friendly tools, however you still need to hexedit.
So I have heard people trying to make custom music for Mario Kart 8 Deluxe, and unfortunately there are speed issues, static, or other bizarre occurrences when trying to mod the music. This tutorial demonstrates how to mod the music correctly to avoid any of these issues.

What you will need:

1. Latest release of nxdumptool
2. A copy of Mario Kart 8 Deluxe (Physical or Digital)
3. A microsd card (duh)
4. Audacity
5. BrawlBox
6. NinAudio
7. AboodXD's BFSTM-BCFWAV-Converter
8. BARSViewer
9. A hex editor such as HxD
10. The latest release of Python
11. A song of your choosing
12. A brain

FOR MULTI CHANNEL BFSTMS:

Multi BRSTM Converter GUI

I have tried other ways of injecting bfstp headers into BGM.bars, could not produce successful results, so right now hex editing is the only way.

1. Obtaining your BGM.bars and your bfstp headers.

If you have a physical version of Mario Kart 8 Deluxe, insert that into your Switch right now.

First of all, launch the hbmenu by overriding a game by launching a game while holding down the R button. Next open up nxdumptool and select dump gamecard content or dump sd card / emmc (nanduser) content. After selecting Mario Kart 8 Deluxe, go down to RomFS options and select that

Next have fat32 support and "save data to CFW directory" enabled, then choose browse RomFS section.

Now go into Audio\Static, where you will find BGM.bars. Hover over that and select A to dump the file. It will be located in SD:\atmosphere\contents\[titleid]\romfs\Audio\Static. 

Afterwards either turn off your switch, remove your micro sd card and place it in your computer or use and ftp client such as FIleZilla to transfer the file over to your computer.

Finally, open BARSviewer and open your BGM.bars. Then click extract to extract all of your bfstp files.

2. Converting the music

In Audacity, open up the song of your choosing. You may alter the song as much as you like. Once ready, go to file -> export -> export to wav, and name the song to the exact same name of the song you are going to replace in-game. A full list of songs can be found here. *Note: The N at the end of the name is for laps 1 & 2, and the F is for lap 3. 

Next, open up BrawlBox and select new -> audio -> BRSTM audio stream, and choose your N song. If you want your audio to loop, find the loop samples and enter them into the loop start and end boxes. Make sure your audio is encoded in PCM16 by hitting the drop down box that says ADPCM, and change it to PCM16. Hit okay and let it convert. Once it is done go to file -> Save as... -> and make sure to save it as a BRSTM. Do the same thing for your F song.

Next go to NinAudio and open your N or F BRSTM (doesn't matter) by clicking the ... and opening your file. Make sure the loop points are correct, then check the box next to little endian and click save, then save your file as a BFSTM.

Next, download the latest version of Python, and when installing it, you will see a box saying "Add python to PATH". Click on this box and make sure it has a check mark inside of it. After Python has installed, download AboodXD's BFSTM-BCFWAV-Converter, extract it, and move the bfstm of your song to the folder. Click on the address bar in file explorer and type in cmd, then hit enter. In the command prompt, type in this command: 

main.py -format FSTP -bom 1 "name of your bfstm.bfstm"

Replace "name of your bfstm" with the actual name of your song. If done correctly you should have a .bfstp of your song.

FOR MULTI CHANNEL BFSTMS:
Some songs use 6+ channels, which will require the exact same amount of channels in your bfstm. This includes Water Park, Super Bell Subway, Electrodrome, Mt. Wario, Cloudtop Cruise, and Dolphin Shoals. For this we will copy the song about 2 more times in audacity, and split all the channels to mono, giving us 6 channels. Go to the 2 channels below the top 2 channels and silence them. Next go to file -> export -> export multiple, and make sure they are .wav files. Download and extract the multi brstm gui builder and export all of the channels (as individual songs) to the wav folder inside of the Multi BRSTM Builder GUI folder. Rename each channel to these EXACT numbers from top to bottom: 1, 2, 3, 4, 5, 6. 

Go back to the main folder and startup the Multi BRSTM Gui application. Select the exact amount of channels your song has and then open up brawlbox. Go to file->new->new brstm audio stream, and open any of the wav files in the wav folder. In Multi BRSTM Gui tick the "Loop" box and in brawlbox copy your loop samples (just have 0 in the start box and the sample at the point where the song ends if you don't care) and paste them in the end box in Multi BRSTM Gui. Then in the box for naming, name the file to the song you will replace and click "Build batch file". Then run build.batch in the Multi BRSTM Gui Builder folder. *This will take a while, please be patient!

Do the same thing as stated above in NinAudio, then convert to a bfstp as stated above.

3. Replacing the header in BGM.bars

BGM.bars is the file used to make sure our music is played properly in-game so there will be no issues.  *It is recommended you keep a backup of this file in case if anything goes wrong!  Now download and install HxD, and open up your BGM.bars, the bfstp of your custom bfstm, and the original bfstp header inside of the BGM folder. (Make sure it is named to the song you are about to replace!) Rename your custom bfstp to something like "pBGM_WU_TECHNO_N(mod).bfstp". This part is VERY confusing for some people, so here is a video tutorial on how to do this: http://www.mediafire.com/file/5p72v0svuco4yol/YouCut_20200419_223109347.mp4/file

3. Installing the mods.

Remove your microsd card from your switch (make sure it is powered off first!) and insert it into your pc, or use an ftp client to transfer files. In the folder of your custom firmware, go to contents (titles on AMS 0.9.4 and below) and go back to contents\[titleid]\romfs\Audio. Move your BGM.bars to the Static folder, and make a new folder called Resource, then make a new folder called Stream. Place your bfstm(s) in here. Eject your microsd card from your computer, boot into the cfw of your choosing, start Mario Kart 8 DX, and test out the song, hopefully it works!

F.A.Q

Q: I have speed issues (too slow or too fast)!

A: BGM.bars isn't present. Make sure it is in your cfw folder\contents\mario kart 8 dx titleid\RomFS\Audio\Static.

Q: I have static when my music starts!

A: You converted your song to a normal bfstm. Make sure it is a PCM16 bfstm and try again.

Q: My game crashed/My switch froze!

A: You did something wrong when replacing the bfstp header. Read the instructions over again carefully and try again.

Q: My song is muted!

A: You probably converted to a wii u BFSTM. Make sure it is the correct BFSTM.

Q: My switch is banned!

A: Your fault.

Q: Can I share/download someone else's BGM.bars?

A: NO! That is piracy, which is against the law.

Q: it doesnt work!!!!!1

A: First of all, before commenting your actual issue, read the rest of the FAQ and see if it has been already answered. Then comment your actual issue, and be descriptive please, or it will take longer.

For any other questions, contact any of the other helpers or me on Discord:
My discord username: Hellacia#7378

Mario Kart 8 Deluxe Modding: https://discord.gg/hKS9CBQ

Credits:

AboodXD (BFSTM-BCFWAV-Converter)
libertyernie (BrawlBox)
Audacity Team (Audacity)
masterf0x (BARSViewer)
Sign up to access this!
  • access_time 2mo
    My command prompt keeps on giving me this message: 'main.py' is not recognized as an internal or external command,operable program or batch file.

    help plz
    Bananite
    URL to post:
  • rajol avatar
    rajol Joined 2mo ago
    Offline
    access_time 2mo
    Hi
    I would like to thank you very much for your efforts at making Mario Kart custom music tutorial.

    It would be great if we can see the updated version soon
    I will be grateful if you tell me if you have plans for updating the tutorial soon

    also it will be great if your guide have away to remove the music for the gamers whose prefer silence
    there is a no music mod for Wii U and it will be very nice if you can convert it to Switch MK

    https://gamebanana.com/sounds/45130

    Thank you very much again and I hope to hear from you soon

    best wishes
    Bananite
    URL to post:
  • Azur_Hd2 avatar
    Azur_Hd2 Joined 9mo ago
    Offline
    access_time 3mo edit 3mo
    Is there an easier method to edit the BMG.bars file? Whenever I try to boot the game with an edited BMG.bars it either just crashes, gives me corrupt music or doesnt play any music at all (even tracks I didn`t edit) and I cant figure out what I`m doing wrong as I followed the guide step by step...
    Bananite
    URL to post:
  • access_time 6mo
    can some one just port the no music mod? that'll just let us play with only sound effects and our own spottily playing. 

    shamballa
    URL to post:
  • SimonTheFoxcoon avatar
    SimonTheFoxcoon username pic Joined 2y ago
    Offline
    982 points Ranked 41300th
    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
    • 1 year a member Medal icon
    • Thanked 5 submitters Medal icon
    access_time 10mo
    i know this is an old guide and hasnt been updated but from another comment you said you were. but streamtool is kind of broken, it hangs on downloading vgaudio. i used to have it work before but now it doesnt. anyways it seems like GC-ADPCM works better for me than PCM-16 does. I export as 16 bit wav with audacity. but when i use GC-ADPCM on looping audio converter, i only have static for 3 seconds then the song works like normal, but when i do PCM-16 static always plays.
    furry foxcoon
    URL to post:
  • BabyLuigiOnFire avatar
    BabyLuigiOnFire username pic Joined 3y ago
    Offline
    1,933 points Ranked 21056th
    11 medals 2 rare
    • 10 submissions featured Medal icon
    • Returned 1000 times Medal icon
    • One month a member Medal icon
    • Submission featured Medal icon
    • Returned 100 times Medal icon
    • 6 months a member Medal icon
    access_time 1y edit 1y
    Hey, I've got custom sound to work properly, but with a few different methods I've approached, since the Stream Master method just mutes my music files in conversion (foobar should play them fine).

    The tutorial outlined doesn't support looping .bfstms if you convert from .wav and if you want to convert to Switch .bfstm from Wii U .bfstm, I've used a fork of the LoopingAudioConverter that supports conversion of Wii U bfstm to Switch bfstm so that loop points are intact.

    https://github.com/eliboa/LoopingAudioConverter/releases/tag/2.1.0

    Just a few things when using LoopingAudioConverter. On the output on the right, select "BFSTM (Switch)" and on the right dropdown menu that has "GC-ADPCM" as its default format, switch that to "PCM-16".

    That should handle the bfstm conversion of the process. You could technically use Abood's conversion tool as well from Wii U bfstm to MK8 Switch BFSTM but...again also ran into issues on my end.

    But thanks a lot for the tutorial! Really nice to now have my songs now rocking as they should from the Switch system!
    Baby Luigi
    URL to post:
  • access_time 1y
    Hello!

    To start, thanks for this! While I struggled to even start adding custom music before, this looks like it may work really well.

     I've tried to follow this guide twice. The first Hex-Editor image refuses to load. As a result, I was forced to guess what you meant. I've tried to follow this guide twice. The first time, everything appeared to have worked until the song was replaced with heavy distorted static. The second time, the game crashed. Seeing as both attempts converted audio from .mp3 to 16-bit .wav to the listed Switch BFSTM PCM file successfully, I am drawn to believe I made an error on the hex editing portion of this process. This is also the most likely culprit as I'm still new to hex editing. 

    Thanks!
    I copy floppies
    URL to post:

Embed

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

Credits

Key Authors
Hellacia619
Hellacia619 Joined 2y ago
Offline
563 points Ranked 45095th
Original Authors
Hellacia619
Hellacia619 Joined 2y ago
Offline
563 points Ranked 45095th
Special Thanks
Anyone who worked on any of the amazing tools

Submitter

Hellacia619 avatar
Hellacia619 Joined 2y ago
Offline
563 points Ranked 45095th
Hellacia619
Creator
  • Paypal Donate
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 Mar 12 2019
  • 4
  • 19.9k
  • 13
  • 1y
  • 1mo
  • 1mo

More Other/Misc Tutorials