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_,

IC_

GBAtemp's ???
OP
Member
Joined
Aug 24, 2017
Messages
1,569
Trophies
1
Location
The Forest
XP
5,423
Country
Antarctica
Do you play online with custom music? My only reservation about this would be inability to get the seasonal updates for holidays since they aren't in the base game.
You're always at risk of getting banned if you mod your switch but this only changes the music on your side and doesn't make the gameplay any different so it probably doesn't matter
I don't even have a modded switch, a person here helped me test the files in the game
 

Klick167

Member
Newcomer
Joined
Apr 18, 2020
Messages
5
Trophies
0
Age
33
XP
45
Country
United States
You're always at risk of getting banned if you mod your switch but this only changes the music on your side and doesn't make the gameplay any different so it probably doesn't matter
I don't even have a modded switch, a person here helped me test the files in the game
That's what I figured. Thanks for the help!
 
  • Like
Reactions: IC_

IC_

GBAtemp's ???
OP
Member
Joined
Aug 24, 2017
Messages
1,569
Trophies
1
Location
The Forest
XP
5,423
Country
Antarctica
I get "BARS patch error: Unable to find." on the online patcher when converting both 10 PM and 11 PM - Sunny
It means that the information about the original files couldn't be found in the bars file, are you sure you're using the correct Bgm_Base.bars file and the correct BWAV file from the game in the original BWAV file field?
 

Anonymous42456

Well-Known Member
Member
Joined
Jan 11, 2017
Messages
145
Trophies
0
XP
791
Country
United States
It means that the information about the original files couldn't be found in the bars file, are you sure you're using the correct Bgm_Base.bars file and the correct BWAV file from the game in the original BWAV file field?
Yes, I used the original BWAV file and I renamed the downloaded patch.bars file to "Bgm_Base.bars" after every replacement.
 

Anonymous42456

Well-Known Member
Member
Joined
Jan 11, 2017
Messages
145
Trophies
0
XP
791
Country
United States
I get "BARS patch error: BWAV channel counts don't match." when converting the "Go KK Rider!" aircheck files. I am using the original dump files and the correct Bgm_Base.bars file.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: It will actually make it worse