Tutorial  Updated

Guide - Animal Crossing New Horizons Custom Music

Mod custom music into Animal Crossing: New Horizons

Things you'll need:
* BWAV encoder (https://github.com/ic-scm/openrevolution, or https://github.com/Gota7/Citric-Composer) or a BWAV file from https://smashcustommusic.net/
* Automatic BARS patcher on your Switch (https://gbatemp.net/threads/automatic-bars-patcher.579473/)
* A dump of the game's files or at least the /Sound directory, you can dump the game with nxdumptool.
* (Optional) An audio player with the vgmstream plugin to preview your BWAV files. Not necessary if you compiled openrevolution and have the brstm_rt program. https://github.com/vgmstream/vgmstream

Optional step 0: Dump the game's sound files
You don't need to do this if you already have the dumped files from the correct version of your game.

Open nxdumptool on your Switch, choose gamecard or SD depending on which version of ACNH you have, and go into RomFS options in Animal Crossing: New Horizons.
Make sure that "Save data to CFW directory" is set to no, and "Use update/DLC" is set to the newest game update. It's very important that you dump the updated version of the game. Then press "Browse RomFS section", navigate to the "Sound" and then "Resource" directory in the file browser, then press the Y button to dump the sound files. This can take some time, depending on your SD card and environment.



Step 1: Find a song
Find the song that you want to mod into your game.
If the song you want is from another game, you can search for it on smashcustommusic.net, download a BWAV directly from the website and skip steps 2-3.



Step 2: Prepare the song
The openrevolution file converter requires a WAV at it's input so if your song is a different format like mp3, ogg, flac or other you'll have to convert it to WAV first.

The easiest way to do that is to open the file in a program like Audacity and to export it as WAV. You can also use ffmpeg directly or any other program capable of that. While you're in Audacity you can also pick out the loop points, see the next step.

If you want to replace a K.K. song, you will have to mix the song into a 1 channel mono file.

You can also use Citric Composer instead of openrevolution to encode your BWAV files, but I am unable to provide any help or assistance with that software.



Step 2.1: Loop points
The usual loop point stuff: open your file in Audacity or similar program, set the time counter to display the sample number, find a good loop point and copy the sample number.
If you need more details about this look on other Nintendo game custom music guides.
You can also skip this step if you don't care about having a proper loop and just set the loop point to 0 later.



Step 3: Encode the BWAV file (openrevolution brstm_converter)

Run this command:
./brstm_converter yourfile.wav -o youroutputfile.bwav -l [Put your loop sample number here]
If using Windows, replace "./brstm_converter" with "brstm_converter.exe".
If the conversion was successful, you should now have a BWAV file at your output file path.

You can also use Citric Composer for this step instead, but I am unable to provide any help or assistance with that software.



Step 4: Put the files in the game
Name your files correctly and put them in the game's files using whatever methods for modding switch games there are.

When replacing the album versions of K.K. music, you also have to copy your custom file for all 4 versions of the K.K. song (Hifi, Phono, Retro, Cheap).

If you're using Atmosphere, you can just put your files in /atmosphere/contents/01006F8002326000/romfs/.
(For example: /atmosphere/contents/01006F8002326000/romfs/Sound/Resource/Stream/BGM_Title.bwav)



Step 5: Patching the BARS file
You'll need to patch the BARS file in the game for the songs to play correctly.

Make sure you have the original dumped sound files from the game somewhere on your Switch, and open the Automatic BARS patcher tool.
Select Animal Crossing: New Horizons.

The tool will now show you 4 different file paths.
Original BARS file should be the original unmodified Bgm_Base.bars file from the game.
Original BWAV folder should be the original unmodified /Sound/Resource/Stream/ folder.
Modded BWAV folder should be the location of your modded BWAV files.
Patched BARS output should be the location for the Bgm_Base.bars file in the mod. (For example: /atmosphere/contents/01006F8002326000/romfs/Sound/Resource/Bgm_Base.bars)

If these file paths are correct, press A to continue. If not, you can press B to make the necessary changes.
The tool should now show how many tracks it patched, and say "Success!".

Press + to exit the tool, and open Animal Crossing: New Horizons. You should now have your custom music correctly playing in the game.

All of the songs in /Sound/Resource/Stream should be in /Sound/Resource/Bgm_Base.bars
Copy the BARS file and the BWAV file you want to replace into some local work directory. If you're replacing K.K. music (aircheck versions) copy all 4 versions of the BWAV files (Hifi, Retro, Cheap, Phono).

Patching the file with the command line patcher:
Compile the patcher with a standard C++ compiler without any special flags
./bars-patcher -i Bgm_Base.bars -o Bgm_Base.bars.patch -og BWAV_file_from_the_game.bwav -patch Your_custom_BWAV.bwav

Online patcher:
https://smashcustommusic.net/onlinetools/bars-patcher/
Put the Bgm_Base.bars file in the BARS file field, the BWAV from the game in the Original BWAV field and your custom BWAV file in the Patch BWAV field.

If you can't use the solutions above and you really hate yourself you should also be able to manually do it in a hex editor:
Open the BARS file, original BWAV file and your custom BWAV file in the hex editor.
From the original file copy the 4 bytes at offset 0x08 (CRC32 checksum).
Switch to the BARS file and use a search function to find those 4 bytes.
Switch to the custom BWAV file and copy all the bytes from the beginning until a chunk of 00's (should be around 160/0x9F bytes in 2 channel files).
Switch to the BARS file, make sure you're in overwrite mode and paste the copied bytes in the correct place (so the BWAV word is in the same place as before).



K.K. music file name list:
Code:
Agent K.K.       - BGM_Live_068_Keiji
Aloha K.K.       - BGM_Live_019_Aloha
Animal City      - BGM_Live_092_Town
Bubblegum K.K.   - BGM_Live_088_Idol
Café K.K.        - BGM_Live_050_Paris
Comrade K.K.     - BGM_Live_044_Showakayo
DJ K.K.          - BGM_Live_039_Eurobeat
Drivin'          - BGM_Live_093_Drive
Farewell         - BGM_Live_094_Sayonara
Forest Life      - BGM_Live_057_Morinoseikatsu
Go K.K. Rider    - BGM_Live_046_Kekerider
Hidden Song 1    - BGM_Live_901_Hazure01
Hidden Song 2    - BGM_Live_902_Hazure02
Hidden Song 3    - BGM_Live_903_Hazure03
Hypno K.K.       - BGM_Live_076_Utatanenoyume
I Love You       - BGM_Live_054_Daisuki
Imperial K.K.    - BGM_Live_023_China
King K.K.        - BGM_Live_062_Daimyo
K.K. Adventure   - BGM_Live_080_Hollywood
K.K. Aria        - BGM_Live_009_Maria
K.K. Ballad      - BGM_Live_043_Ballad
K.K. Bazaar      - BGM_Live_082_Roma
K.K. Birthday    - BGM_Live_091_Birthdaysong
K.K. Blues       - BGM_Live_032_Blues
K.K. Bossa       - BGM_Live_011_Bossa
K.K. Calypso     - BGM_Live_012_Caripso
K.K. Casbah      - BGM_Live_024_Turkey
K.K. Chorale     - BGM_Live_001_Sanbika
K.K. Condor      - BGM_Live_021_Peru
K.K. Country     - BGM_Live_041_Country
K.K. Cruisin'    - BGM_Live_035_Urban
K.K. D&B         - BGM_Live_037_Drumnbass
K.K. Dirge       - BGM_Live_047_Kowaiuta
K.K. Disco       - BGM_Live_090_Disco
K.K. Dixie       - BGM_Live_060_Dixie
K.K. Étude       - BGM_Live_007_Etude
K.K. Faire       - BGM_Live_018_Haisai
K.K. Flamenco    - BGM_Live_086_Flamenco
K.K. Folk        - BGM_Live_026_Minyo
K.K. Fusion      - BGM_Live_006_Fusion
K.K. Groove      - BGM_Live_084_Raregroove
K.K. Gumbo       - BGM_Live_030_Neworleans
K.K. House       - BGM_Live_074_House
K.K. Island      - BGM_Live_078_Doubutsunoshima
K.K. Jazz        - BGM_Live_005_Jazz
K.K. Jongara     - BGM_Live_085_Jongara
K.K. Lament      - BGM_Live_045_Enka
K.K. Love Song   - BGM_Live_036_Lovesong
K.K. Lullaby     - BGM_Live_008_Lullaby
K.K. Mambo       - BGM_Live_014_Mambo
K.K. Marathon    - BGM_Live_061_Gamelan
K.K. March       - BGM_Live_002_March
K.K. Mariachi    - BGM_Live_052_Senor
K.K. Metal       - BGM_Live_070_Metal
K.K. Milonga     - BGM_Live_083_Milonga
K.K. Moody       - BGM_Live_087_Bolero
K.K. Oasis       - BGM_Live_081_Maharaja
K.K. Parade      - BGM_Live_051_Parade
K.K. Ragtime     - BGM_Live_029_Ragtime
K.K. Rally       - BGM_Live_069_Ondo
K.K. Reggae      - BGM_Live_015_Reggae
K.K. Rockabilly  - BGM_Live_067_Kekebily
K.K. Rock        - BGM_Live_027_Rock
K.K. Safari      - BGM_Live_025_Afro
K.K. Salsa       - BGM_Live_013_Salsa
K.K. Samba       - BGM_Live_010_Samba
K.K. Ska         - BGM_Live_016_Ska
K.K. Sonata      - BGM_Live_075_Sonata
K.K. Song        - BGM_Live_053_Kekesong
K.K. Soul        - BGM_Live_034_Soul
K.K. Steppe      - BGM_Live_022_Cossack
K.K. Stroll      - BGM_Live_077_Osanpo
K.K. Swing       - BGM_Live_004_Swing
K.K. Synth       - BGM_Live_089_Electronica
K.K. Tango       - BGM_Live_017_Tango
K.K. Technopop   - BGM_Live_038_Technobeat
K.K. Waltz       - BGM_Live_003_Waltz
K.K. Western     - BGM_Live_048_Western
Lucky K.K.       - BGM_Live_020_Irish
Marine Song 2001 - BGM_Live_064_Hunauta2001
Mountain Song    - BGM_Live_063_Alpine
Mr. K.K.         - BGM_Live_049_Sensei
My Place         - BGM_Live_056_Bokunobasho
Neapolitan       - BGM_Live_065_Napolitan
Only Me          - BGM_Live_040_Onlyme
Pondering        - BGM_Live_059_Kangaechu
Rockin' K.K.     - BGM_Live_028_Rocknroll
Soulful K.K.     - BGM_Live_033_Gospel
Space K.K.       - BGM_Live_079_Minimal
Spring Blossoms  - BGM_Live_072_Harunokomorebi
Stale Cupcakes   - BGM_Live_071_Blueonigiri
Steep Hill       - BGM_Live_066_Nidanzaka
Surfin' K.K.     - BGM_Live_042_Eleki
The K. Funk      - BGM_Live_031_Funk
To the Edge      - BGM_Live_058_Naminami
Two Days Ago     - BGM_Live_055_Ototoi
Wandering        - BGM_Live_073_Horo
Welcome Horizons - BGM_Live_095_Minnaatsumare
----- 2.0 update songs -----
K.K. Fugue       - BGM_Live_096_Fugue
K.K. Polka       - BGM_Live_097_Polka
K.K. Slack-Key   - BGM_Live_098_Slackkey
K.K. Chorinho    - BGM_Live_099_Choro
Chillwave        - BGM_Live_100_Chillwave
K.K. Dub         - BGM_Live_101_Dub
K.K. Lovers      - BGM_Live_102_Lovers
K.K. Bashment    - BGM_Live_103_Bashment
K.K. Hop         - BGM_Live_104_Hiphop
K.K. Break       - BGM_Live_105_Break
K.K. Khoomei     - BGM_Live_106_Khoomii
K.K. Robot Synth - BGM_Live_107_Android

Please let me know if you have any issues or feedback.
 
Last edited by IC_,

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
This is so cool but I'm dumb, don't even know how to extract the /sound directory from the game lol
 

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
This is so cool but I'm dumb, don't even know how to extract the /sound directory from the game lol
its easy o extracted romfs with yuzu but not all songs are there like bubble forexample but if you visit acsr.tk and i will compile it for you and add it to a animal crossing custom music mod database i made

--------------------- MERGED ---------------------------

i made an tut video on how to convert

follow my video on how to convert if not just simple use my site and i will make the mod 4 you
 
  • Like
Reactions: Tsunn7

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
its easy o extracted romfs with yuzu but not all songs are there like bubble forexample but if you visit acsr.tk and i will compile it for you and add it to a animal crossing custom music mod database i made

--------------------- MERGED ---------------------------


follow my video on how to convert if not just simple use my site and i will make the mod 4 you
Tried to post a request on that site, hope to have done it correctly

Meanwhile I found out I can dump romfs with nxdumptool, so I'm doing that right now
I'll check your video too, thank you bro
 
  • Like
Reactions: IC_

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
Tried to post a request on that site, hope to have done it correctly

Meanwhile I found out I can dump romfs with nxdumptool, so I'm doing that right now
I'll check your video too, thank you bro
i cannot see any request on my site but if you a request i can have it done in 10 min
 

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
I tried to use the bars patcher online, I used the "Bgm_Base.bars" from /Sound/Resource, "BGM_Audio_065_Napolitan_Cheap.bwav" from /Sound/Resource/Stream and a .bwav from your site (https://smashcustommusic.net/song/75819) but i get the "BARS patch error: BWAV channel counts don't match."
How can I fix this? I'm not an expert

Your custom file should be a 1 channel mono file like the K.K. songs in the game
I saw this but havent clearly understood what it means..
 

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
I tried to use the bars patcher online, I used the "Bgm_Base.bars" from /Sound/Resource, "BGM_Audio_065_Napolitan_Cheap.bwav" from /Sound/Resource/Stream and a .bwav from your site (https://smashcustommusic.net/song/75819) but i get the "BARS patch error: BWAV channel counts don't match."
How can I fix this? I'm not an expert


I saw this but havent clearly understood what it means..
-l 1 means it will loop so most cases use 1 and not 0
 

IC_

GBAtemp's ???
OP
Member
Joined
Aug 24, 2017
Messages
1,569
Trophies
1
Location
The Forest
XP
5,407
Country
Antarctica
I tried to use the bars patcher online, I used the "Bgm_Base.bars" from /Sound/Resource, "BGM_Audio_065_Napolitan_Cheap.bwav" from /Sound/Resource/Stream and a .bwav from your site (https://smashcustommusic.net/song/75819) but i get the "BARS patch error: BWAV channel counts don't match."
How can I fix this? I'm not an expert


I saw this but havent clearly understood what it means..
The K.K. songs in the game have only one channel so your custom file should be a one channel file too
Most files on smashcustommusic are 2 channel stereo files so you can't use those for K.K. songs unless you mix the file into a mono file
If you can't get my BRSTM tools to work I can do it for you for that one song on smashcustommusic
 

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
-l 1 means it will loop so most cases use 1 and not 0
How can I edit the .bwav from the site ((https://smashcustommusic.net/song/75819) and set it to 1? I tried downloading Audacity as the guide says, but it can't ope bwav files

--------------------- MERGED ---------------------------

The K.K. songs in the game have only one channel so your custom file should be a one channel file too
Most files on smashcustommusic are 2 channel stereo files so you can't use those for K.K. songs unless you mix the file into a mono file
If you can't get my BRSTM tools to work I can do it for you for that one song on smashcustommusic
I will try to make it work because I actually want to learn do it myself, but if you can do it for me so I can test if it works right away you would make me a favour
The song is this one (https://smashcustommusic.net/song/75819)
 

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
How can I edit the .bwav from the site ((https://smashcustommusic.net/song/75819) and set it to 1? I tried downloading Audacity as the guide says, but it can't ope bwav files

--------------------- MERGED ---------------------------


I will try to make it work because I actually want to learn do it myself, but if you can do it for me so I can test if it works right away you would make me a favour
The song is this one (https://smashcustommusic.net/song/75819)
if you can do it on my website it would help me allott since i trying to gather a community of helpers to make a huge animal crossing custom song database with any songs in the world my server has 1 tb now and i will expand it further when we reach the limit of the sapce
 
  • Like
Reactions: Tsunn7

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
if you can do it on my website it would help me allott since i trying to gather a community of helpers to make a huge animal crossing custom song database with any songs in the world my server has 1 tb now and i will expand it further when we reach the limit of the sapce
I tried to post a request but the instructions are a little bit confused, in doubt I posted a comment here https://acsr.tk/?page_id=69
 

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
you jus
I tried to post a request but the instructions are a little bit confused, in doubt I posted a comment here https://acsr.tk/?page_id=69
t have to use the youtube download to get a song then you rename it with name of the custom song and add at the end of file name name of the kk song you want replaced and i will have it dont within few minutes
 

IC_

GBAtemp's ???
OP
Member
Joined
Aug 24, 2017
Messages
1,569
Trophies
1
Location
The Forest
XP
5,407
Country
Antarctica
How can I edit the .bwav from the site ((https://smashcustommusic.net/song/75819) and set it to 1? I tried downloading Audacity as the guide says, but it can't ope bwav files

--------------------- MERGED ---------------------------


I will try to make it work because I actually want to learn do it myself, but if you can do it for me so I can test if it works right away you would make me a favour
The song is this one (https://smashcustommusic.net/song/75819)
You have to convert the file you downloaded back to WAV or download the file as WAV from the website, import it into audacity, mix the two channels into mono in it, export it back into the wav and then use the BWAV encoder to convert it into a BWAV (At the end of the command add "-c 1" and "-l [the loop point from the original file, the song details page on smashcustommusic lists it as the loop start point]")
Converted mono file is attached
Also I noticed that you only want to patch the Cheap version of the K.K. song in the game, you have to repeat it for each version like the guide says or the game will get confused about the different versions not being similar and not play it correctly
 

Attachments

  • 75819.zip
    1.9 MB · Views: 102

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
you jus

t have to use the youtube download to get a song then you rename it with name of the custom song and add at the end of file name name of the kk song you want replaced and i will have it dont within few minutes
I downloaded the song using the youtube downloader, I then renamed my downloaded song with the custom name of it and the song I wish to replace, but I miss the last step where I can actually request the convertion on your site

--------------------- MERGED ---------------------------

You have to convert the file you downloaded back to WAV or download the file as WAV from the website, import it into audacity, mix the two channels into mono in it, export it back into the wav and then use the BWAV encoder to convert it into a BWAV (At the end of the command add "-c 1" and "-l [the loop point from the original file, the song details page on smashcustommusic lists it as the loop start point]")
Converted mono file is attached
Also I noticed that you only want to patch the Cheap version of the K.K. song in the game, you have to repeat it for each version like the guide says or the game will get confused about the different versions not being similar and not play it correctly
Yes, I know I will have to do it 4 times for each version of the song, so that means I have to replace the original Bgm_base with the one generated from the online patcher right? Like I generated the first "patch.bars" using the 'cheap' version of the bwav, when going to to patch the 'hifi' versione I have to upload the "patch.bars" I just generated and so on, am I right?
 

IC_

GBAtemp's ???
OP
Member
Joined
Aug 24, 2017
Messages
1,569
Trophies
1
Location
The Forest
XP
5,407
Country
Antarctica
Yes, I know I will have to do it 4 times for each version of the song, so that means I have to replace the original Bgm_base with the one generated from the online patcher right? Like I generated the first "patch.bars" using the 'cheap' version of the bwav, when going to to patch the 'hifi' versione I have to upload the "patch.bars" I just generated and so on, am I right?
Yeah exactly, it's pretty much just supposed to update the bars file but web browsers save it as a new file every time
 
  • Like
Reactions: Tsunn7

Tsunn7

Well-Known Member
Newcomer
Joined
Dec 18, 2016
Messages
52
Trophies
0
Age
27
XP
459
Country
Italy
Yeah exactly, it's pretty much just supposed to update the bars file but web browsers save it as a new file every time
It worked, the song sounds a little bit "weird" in-game, but it definitely works omg this is freaking cool
I now need to learn how to make my own bwav files with the proper settings
 
  • Like
Reactions: IC_

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
What do you mean?
hello mrs is it okay i link your bars patcher to my ac song database website i will add ypur name link to your github or gbatemp profile i wanted to make a huge database with thousands of songs provided by community
 

spiller

Well-Known Member
Newcomer
Joined
Jan 16, 2017
Messages
99
Trophies
0
Age
29
XP
146
Country
Norway
And if you can in the futire make the c code to a webscript can build it with you to make it a wp plugin millions use wp daily æ
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: roms wont boot with wood r4menu