Irritating dogs barking all the time

Hello,

Would someone happen to know how to remove the dogs we hear barking constantly outdoor, like in the marketplace or in the villages in general? This is driving me crazy due to some unfortunate piece of history with those animals, and while this game is great, I’m really considering giving up on it just because of that!

I found how to remove the barkings we hear yet again constantly in the throne room and some other ones, by modifying the following file:

Kingmaker_Data\StreamingAssets\Audio\GeneratedSoundBanks\Windows\SoundbanksInfo.xml

and removing all paths containing “Dog_Idle”, or “Background_Bark”, “Interior_Bark”.

I’ve also moved those files away, to make sure: CRE_Dog.bnk, CRE_FaerieDragonPet.bnk, CRE_Mastodon.bnk.

But it’s still not enough, those outside dogs keep barking away.

I suppose other people are not so much annoyed by that, but I really don’t see the point of forcing the user to hear those repetitive, aggressive noises :confused:

EDIT

Modifying SoundbanksInfo.xml has no effect whatsoever. I’m wondering what the purpose of this file may be, then, that’s puzzling.

Deleting AMB_GenericVillage.bnk removes these annoying sounds, but also many other background sounds.

So it appears the only way is to extract the sounds of this bnk, find the incriminating one, and replace it in the bnk file…

EDIT 2

SoundbanksInfo.xml is only for convenience, to map the developer’s audio filenames to the bnk content.

It seems to work by replacing the *.wem files inside the .bnk by a zero-lengthed file. It’s tedious to do that manually though, because several .bnk files are impacted, I need to script that for all the suspect files listed in SoundbanksInfo.xml.

I found a solution by writing a tool to manipulate the bnk files, unfortunately I can’t upload it here, so I’ve hosted the scripts here: http://s000.tinyupload.com/index.php?file_id=62908874651736381794

This is for people who are familiar with scripting, if you are not, don’t risk to damage your game installation. In any case, do a backup first! I’m not giving support in case of problem, nor taking any responsibility for any damage.

You need Cygwin or Msys, and Python 3.6 or more recent. I have tested that in Windows, but it should work on Linux too (if the game is available on Linux, I haven’t checked).

Instructions:

  • unzip the file in a temporary location, let’s call it $mydir
  • note the *.txt files, they contain the list of sounds to remove
  • from Kingmaker_Data\StreamingAssets\Audio\GeneratedSoundBanks\Windows, copy the .bnk files that correspond to a such a .txt file to $mydir (so that in $mydir, you have AMB_Capital.txt and AMB_Capital.bnk, Main.txt and Main.bnk, and so on)
  • touch *.txt (so that the timestamps on *.txt are more recent)
  • make

This will edit the .bnk files and do a backup of the original ones.

  • Put the modified .bnk files back in the game folder.

How can I revert my modifications? Use your backup! … or use the *.bnk.000 files, they are backups created by the tool in case you forgot to do it :slight_smile:

If you don’t have Cygwin / Msys, but only Python, you can launch the commands manually:

python bnktool.py Main.bnk -e [Main.txt]
python bnktool.py AMB_Capital.bnk -e [AMB_Capital.txt]
...

… and the same with all the .bnk files, you get the idea :wink:

What does it do? It will replace some of the sounds in those .bnk files by a zero-length (empty) ones, so they can’t be heard anymore.

How did you know which sounds to remove? I tried to spot all barking sounds in the SoundbanksInfo.xml file, and from there, get the ID in those bank files.

For example:

	<SoundBank Id="906074328" GUID="{77F67DA0-FB71-4E39-8DC5-A481FFCABD58}" Language="SFX">
		<ObjectPath>\SoundBanks\Default Work Unit\Ambiences\AMB_DLC2_Varnhold</ObjectPath>
		<ShortName>AMB_DLC2_Varnhold</ShortName>
		<Path>AMB_DLC2_Varnhold.bnk</Path>
		<IncludedEvents>
			...
		</IncludedEvents>
		<ReferencedStreamedFiles>
			...
		</ReferencedStreamedFiles>
		<IncludedMemoryFiles>
			<File Id="34827851" Language="SFX">
				<ShortName>Sounds\Ambience\2D_Global\Animals\Dog01_Background_Bark\Dog01_Background_Bark_04.wav</ShortName>
				<Path>SFX\Sounds\Ambience\2D_Global\Animals\Dog01_Background_Bark\Dog01_Background_Bark_04_023FB930.wem</Path>
			</File>
			<File Id="44936009" Language="SFX">
			...

File Id 34827851 is obviously one we want to remove. I put this number in AMB_DLC2_Varnhold.txt, and the tool will remove all sounds with a corresponding ID in this file. Those IDs are simply big numbers.

How can I remove other sounds? You can add their IDs to the corresponding .txt file and re-process them.

How can I know the ID? If you don’t know the ID, you can