Tree of Savior Forum

[Tutorial] How to open sound effect files?

Hi guys!

Just reposting here my post on reddit.


I would like to mix some of the korean and japanese voices. That’s my final objective (or maybe change / translate some of the sounds?). I couldn’t do that yet but at least I found a way to open all the sound effects in the game. I’m explaining here how to do it since it wasn’t that simple.

Short version

Decrypt sound.ipf file from data ToS folder and extract it with IPF Suite. Copy FMOD FSB Extractor.exe to this folder then run it from a command prompt or PowerShell like this & '.\FMOD FSB Extractor.exe SE.fsb'. The resulting .wav files will be in the EXTRACTED folder.

Long and through version

  1. Get all the software I posted down below. Scroll down and download them while you read this.
  2. Copy the file sound.ipf from your Tree of Savior data folder to a safe place. Should be something like C:\Program Files (x86)\Steam\SteamApps\common\TreeOfSavior\data. Close the game before doing this.
  3. From the IPFUnpacker.zip, extract it and copy both filesipf_unpack.exe and zlib.dll to the same folder you copied the sound.ipf file. This is how your folder should look like
  4. While in Windows Explorer and with no file selected, hold shift and right click on a empty area and select Open PowerShell window here. Image
  5. In PowerShell, type this: .\ipf_unpack.exe .\sound.ipf decrypt. Image
  6. Now that your file is decrypted we can open it in IPF Suite. Do it now.
  7. Inside IPF Suite, open the file sound.ipf you just decrypted. Image.
  8. Click “Extract All” button in the bar above and select the same folder you copied sound.ipf file (or whatever you’d like).
  9. This will create a folder called data with subfolders in it until you reach the files you just saw in IPF Suite. Image
  10. Copy “FMOD FSB Extractor” to this folder. Image
  11. While holding shift, right click and open a PowerShell again, like you did in step 4, but in this folder now.
  12. In PowerShell, type: & '.\FMOD FSB Extractor.exe SE.fsb'. Image
  13. It will take some time and then it’ll open a weird command prompt window (black) asking you to check if the sofware is in the same folder as the .fsb files. While this window is focused, just hit any key. Image
  14. After a while, it will extract the fsb files and put it inside a folder called EXTRACTED. Image and Image

Congratulations you have a lot of .wav files to have fun! :slight_smile:

Softwares to download

Now, it would be awesome if anyone could teach me how to put them back into the FSB and again into the IPF! :wink:

I don’t think the softwares for packing can do that actually.

Your best bet is creating a new package and insert as an Add-On, now as for if it will work or not, you might need to fiddle with some LUA codding to make the game bypass the original files and run the new ones.

@LunarRabbit do you know if that is possible? I’m just supposing here it is but, since you have more experience on LUA (and add-on creation) than me I seek for enlightenment.

Hmm. I don’t think the voices are played on Lua side…

Just as he might know from extracting the sounds, the resources are used by the engine… which means it’s on C++ side.

Assuming you can’t mess up with it code-wise… you can’t do nothing from Lua side.

Possible from C++/native-side? Yeah! Of course! Everything is!
Just find the part of the code that runs the audio and make a memory analysis tool that find the byte-code pattern and replaces it with a jmp and allocate more memory to save the original instructions for a trampoline and from that change the sounds files it loads on run-time! Of course, revise your tool on each Client_tos.exe update.

Jokes aside, I don’t think you can easily change the game behavior for playing the voices so easily so I’d just call it not worth to.

Plus, the act of “put them back into FSB” can be called simply as: recompiling the sounds.

Which directly reminds me of this:

I trust what _Yuki said there. There’s more explanations on the topic, such as:

If you’re going for it, good luck! I’ll help on what I can if you get there just be mindful you’re prolly going to spend a quite good amount of time if things doesn’t work on the first tries.

2 Likes

mom you are good at this

1 Like

That is what I thought too, and even if one try to go into the C++ codding, it could cause a lot of problems specially with ToS’s ToS (what a bad pun).

I think stuff like sound files should be separated like the BGM’s, but I can feel a bit that IMC later on will completely remove the add-on system from the game, just a hunch of mine tho.

Unless they give us a tool to create add-ons later after they re-check everything in the code and remove or block certain calls from it to avoid cheating.

I don’t mind both ways tho, but if they will offer a tool, one like TL2 GUTS would be interesting.

From my experience, this software can work with R1.fdp, which is a project file that takes a while to open and consumes up to 1gb RAM. When it’s open, it will say the sound wave files are missing. I could put them all there but I’m guessing here this software won’t help the way I wanted.

I just read the post you quoted and I’m thrilled to see the amount of work people are able to do to just change something like this. At the same time, I can’t do much from here. I hope this change soon.

Thanks for the answers too guys, appreciate it.

1 Like

If someone can make use of this wizardry to remove the barkbark sfx from shooting star, hexen dropper, etc and replace it with literally any other skills attack sfx, I would award 10,000 internets.