Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

FSB OGG Unpacker

Featured Replies

  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 8:48 am (659)


The chunked OGG files in the FSB archives are in my TODO list from long time, but I have still not checked them because I think they may take a good amount of time.
  • Author
  • Localization

spider91, posted Thu Oct 02, 2014 9:38 am (662)


aluigi wrote:
The chunked OGG files in the FSB archives are in my TODO list from long time, but I have still not checked them because I think they may take a good amount of time.


Maybe there's a way to dump them using functions from original fmod*.dll from game? Mafia extractor worked that way. It could be the simplest way...
  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 9:42 am (664)


Alternatively someone can write a tool to read the extracted chunked ogg using (or trying to use) the fmod API.
  • Author
  • Localization

spider91, posted Thu Oct 02, 2014 6:12 pm (675)


Downloaded programmers api for fmod studio. There's an example file play_stream.exe that uses fmod.dll to play sounds directly from fsb. Replaced example .fsb with one from the game and it worked, but it plays only the first file. There is a c description for doing that, but i'm a newbie on this things, so could someone try to write an unpacker using that functions from fmod.dll? Examples: https://mega.co.nz/#!1gJUXZ4L!xiCjm-e-l ... aXR5IYp5hk
  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 6:53 pm (678)


Interesting, the reason why it plays only the first file is the usage of 0 in getSubSound.

Anyway when I will figure out how to build a playable ogg from the chunked ogg used in FSB, I will update fsbext.
  • Author
  • Localization

spider91, posted Thu Oct 02, 2014 7:03 pm (680)


aluigi wrote:
Interesting, the reason why it plays only the first file is the usage of 0 in getSubSound.


Yep, i've understood that. The problem is that i can't recompile that tool from an example and included libraries. Embarcadero c gives me an error when i try to compile that.
  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 7:14 pm (681)


Syntax error or some missing library?
Anyway it's better if you use Visual Studio, it's possible that the library is compiled with a calling convention not used by other compilers (just like Steamworks).
  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 7:31 pm (685)


I suspect it wants main() and so returns error because there is no main there.
You can try one of the following two things:

1) Append the following:
Code:
int main(void) {
return FMOD_Main();
}

2) replace FMOD_Main() with main(void)
  • Author
  • Localization

aluigi, posted Thu Oct 02, 2014 8:45 pm (692)


Because the compiler doesn't find the FMOD library.
  • Author
  • Localization

spider91, posted Thu Oct 02, 2014 9:06 pm (693)


Well, that was stupid... But still dosen't work. Added it to the project, but received an error of COFF. Google said that i need VS for that kind of libraries... downloading it now, will try tomorrow again with VS.

upd.

It worked with VS 2013. Just need to figure out how to save all files to hdd.
  • Author
  • Localization

AlphaTwentyThree, posted Sun Oct 19, 2014 9:02 am (1049)


Any progress on this? The new Shadow Warrior also uses ogg in fsb archives.
  • Author
  • Localization

aluigi, posted Sun Oct 19, 2014 4:07 pm (1062)


The last time I checked it many months ago, it seemed a not-so-simple task.
I have no longer checked from that time.
  • Author
  • Localization

spider91, posted Sun Oct 19, 2014 4:33 pm (1064)


Thats pretty sad news... I.ve figured out how to make a player from fmod examples by number of track, but my skills are too bad for making an extractor... even with api. Also there are packer for fsb5, but there is no any possibility to unpack thata sounds as well. The last hope is you, aluigi.
  • Author
  • Localization

aluigi, posted Sun Oct 19, 2014 4:57 pm (1066)


My idea was being able to rebuild the chunks in a classical ogg file, so without conversion.
But, as already said, probably it's not a simple task.
  • Author
  • Localization

spider91, posted Sun Oct 19, 2014 6:36 pm (1069)


So why don't you want to use fmod api for your tool? Isn't that more simple? Or you have your own rules for tools that doesn't permit you to use another tools?
  • Author
  • Localization

aluigi, posted Sun Oct 19, 2014 7:17 pm (1070)


Because my tool is an extractor that keeps the original file and quality, instead fmod will decode the audio.
  • Author
  • Localization

spider91, posted Sun Oct 19, 2014 8:21 pm (1073)


fmod has a lot of options and you can disable all effects that are used in game.

P.S.
What about raw pcm topic?
  • Author
  • Localization

aluigi, posted Sun Oct 19, 2014 9:52 pm (1076)


The problems are not the effects, it's just the target of the fsbext tool that is different.
The idea is a tool that dumps the data as-is and, if necessary, adapts the data for creating a playable file (like what happens with mp3 that are very similar to ogg in their concept).

Regarding the raw pcm topic I already expressed my opinion, it's not possible to recognize a raw pcm stream inside a file contaiing any random data.
  • Author
  • Localization

spider91, posted Sun Oct 19, 2014 10:40 pm (1078)


I've ansvered about raw on that topic. That is possible and that tool recognizes raw data. Search the dumped file for TAK entries. It extracts raw, adds header, compress it with TAK and put it back in a whole file. So there are a way to recognize that data. Also you can just try to extract it with "e" command, but it will extract raw data without header.
  • Author
  • Localization

aluigi, posted Tue Oct 21, 2014 10:56 am (1101)


I made a test and that tool didn't work with me.
The reason is logic, go on Linux and make: cat /dev/urandom > /tmp/audio_data.raw

The generated file can be a sequence of random bytes or just a "noisy" PCM 8 or 16bit raw audio file, nobody can tell or maybe a valid PCM raw in the middle of other non-audio data.

That's the reason why it's not possible to find headerless raw PCM audio data (no RIFF, no other magic signatures to search) in a file, and I already tested the tool and it failed.

I want to be sure that we are in sync on the correct terms, with PCM raw data I mean just the sequence of audio without headers.
If the data has an header then it's a format (RIFF WAV for example) and, yes, in that case it's possible to search the files, but it's a format scanner and not a "raw" scanner.

Hope it's clear now.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.