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.
Zero Tolerance for Disrespect

Apex Legends .MSTR

Featured Replies

  • Author
  • Localization

superdave3k, posted Thu Jun 13, 2019 5:42 pm (48755)


xyx0826 wrote:
Durandal217 wrote:
Fascinating on number 2. However number 1 confuses the hell out of me too, if there is no decoder how is it decoding the audio?


Ah, I should've made it clearer.

Original MSS provides an API, `AIL_decompress_ASI`, that takes a Bink audio file and directly converts it into a wav file. You can then simply take the file from memory and save it to disk.

I haven't seen a similar API in MSS10 yet. Surely the dll knows how to decode the audio, but it uses the decoder internally to feed the decoded waveform into playback device/audio driver etc. without giving it to you in its data form.



Hey if you're still working on this, I was able to dump the 64 bit miles DLL and get pretty usable code back, can shoot you what I have, if not that's cool too, just thought I'd offer. Know this is an old thread, sorry for necroing it.
  • Replies 127
  • Views 147
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

Durandal217, posted Sat Jun 15, 2019 1:39 am (48792)


superdave3k wrote:
xyx0826 wrote:
Durandal217 wrote:
Fascinating on number 2. However number 1 confuses the hell out of me too, if there is no decoder how is it decoding the audio?


Ah, I should've made it clearer.

Original MSS provides an API, `AIL_decompress_ASI`, that takes a Bink audio file and directly converts it into a wav file. You can then simply take the file from memory and save it to disk.

I haven't seen a similar API in MSS10 yet. Surely the dll knows how to decode the audio, but it uses the decoder internally to feed the decoded waveform into playback device/audio driver etc. without giving it to you in its data form.



Hey if you're still working on this, I was able to dump the 64 bit miles DLL and get pretty usable code back, can shoot you what I have, if not that's cool too, just thought I'd offer. Know this is an old thread, sorry for necroing it.


I don't know if he is still active but please post what you have and what you've learned anything is valuable at this point. Still dying to get the audio from this game!
  • Author
  • Localization

StrefaPD, posted Wed Jul 03, 2019 3:11 pm (49130)


can someone tell me how i can extract polish sounds files? ;) pls tutuorial
  • Author
  • Localization

xyx0826, posted Wed Jul 03, 2019 8:49 pm (49136)


superdave3k wrote:
Hey if you're still working on this, I was able to dump the 64 bit miles DLL and get pretty usable code back, can shoot you what I have, if not that's cool too, just thought I'd offer. Know this is an old thread, sorry for necroing it.

Sorry for the late reply. Haven't checked the thread in a while but yes I'm still very interested in this. Thanks.
  • Author
  • Localization

zuronaught, posted Thu Jul 04, 2019 3:47 pm (49144)


xyx0826 wrote:
superdave3k wrote:
Hey if you're still working on this, I was able to dump the 64 bit miles DLL and get pretty usable code back, can shoot you what I have, if not that's cool too, just thought I'd offer. Know this is an old thread, sorry for necroing it.

Sorry for the late reply. Haven't checked the thread in a while but yes I'm still very interested in this. Thanks.

Same.

zuronaught wrote:
I swear I remember seeing AIL_decompress_ASI in one of the dlls. I unfortunately had to reinstall windows so my game installation is gone right now and I can't check.

I looked through the files again and I must misremembered. I must have been thinking about some missing dependencies from mss64 in bink2w64 named AIL_mem_alloc_lock_info, AIL_release_sample_handle, AIL_minimum_sample_buffer_size, etc.
  • Author
  • Localization

fax1ty, posted Fri Jul 05, 2019 4:51 am (49149)


Any progress? I was able to get these files
Image
thanks to the following tool
But I can't convert the received files to the playable format
Image
  • Author
  • Localization

xyx0826, posted Sat Jul 06, 2019 11:17 am (49168)


fax1ty wrote:
But I can't convert the received files to the playable format

"No codec". You'll need a binkawin.asi file to work with Binkalore in order to decode those files.
Actually even if you manage to do that those file pieces are of no use right now, since they're basically audio fragments and we currently don't have a way to put them back together.
  • Author
  • Localization

xyx0826, posted Sat Jul 06, 2019 11:24 am (49169)


zuronaught wrote:
I looked through the files again and I must misremembered. I must have been thinking about some missing dependencies from mss64 in bink2w64 named AIL_mem_alloc_lock_info, AIL_release_sample_handle, AIL_minimum_sample_buffer_size, etc.


That's okay... Apparently they've done a complete rewrite of their API in MSS10.
I took a peek at other forums hoping to find more people looking into the sound system. However it seems like most people are only interested in vpaks and starpaks.
  • Author
  • Localization

Lyxi, posted Sun Jul 07, 2019 5:55 am (49187)


soon
  • Author
  • Localization

xyx0826, posted Sun Jul 07, 2019 1:50 pm (49192)


Lyxi wrote:

This looks awesome. Seems like you figured out how the APIs work? Hoping to see more details/progress on it!!
  • Author
  • Localization

Lyxi, posted Sun Jul 07, 2019 8:34 pm (49201)


xyx0826 wrote:
Lyxi wrote:

This looks awesome. Seems like you figured out how the APIs work? Hoping to see more details/progress on it!!

yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()
  • Author
  • Localization

zuronaught, posted Sun Jul 07, 2019 10:16 pm (49203)


Lyxi wrote:
xyx0826 wrote:
Lyxi wrote:

This looks awesome. Seems like you figured out how the APIs work? Hoping to see more details/progress on it!!

yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()


When you do release this, can you please explain how you went about it so the rest of us noobs can learn? :D
  • Author
  • Localization

Lyxi, posted Sun Jul 07, 2019 10:51 pm (49206)


zuronaught wrote:
Lyxi wrote:
xyx0826 wrote:
This looks awesome. Seems like you figured out how the APIs work? Hoping to see more details/progress on it!!

yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()


When you do release this, can you please explain how you went about it so the rest of us noobs can learn? :D

absolutely. i've been trying to figure out how ill do a write up and i realized i would do a write up on the process of how i did the analysis in the first place.
  • Author
  • Localization

zuronaught, posted Sun Jul 07, 2019 10:58 pm (49207)


Lyxi wrote:
zuronaught wrote:
Lyxi wrote:
yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()


When you do release this, can you please explain how you went about it so the rest of us noobs can learn? :D

absolutely. i've been trying to figure out how ill do a write up and i realized i would do a write up on the process of how i did the analysis in the first place.


Awesome; I can't wait!
  • Author
  • Localization

xyx0826, posted Mon Jul 08, 2019 8:05 am (49212)


Lyxi wrote:
yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()

Amazing that you got the structs figured out! :heart:
I used to work on a GUI (actually pretty decent until I bombed it with a 2.0) for Overwatch's asset extractor. I assume you're working with C - if you need any help on the tool or a GUI frontend please lemme know.
  • Author
  • Localization

Lyxi, posted Mon Jul 08, 2019 11:57 am (49214)


xyx0826 wrote:
Lyxi wrote:
yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()

Amazing that you got the structs figured out! :heart:
I used to work on a GUI (actually pretty decent until I bombed it with a 2.0) for Overwatch's asset extractor. I assume you're working with C - if you need any help on the tool or a GUI frontend please lemme know.

Thank you for your offer, I don't have any experience GUI programming in CPP, so I might ask you for that help!

Really good news, I can now play every single sound in the game (including music). I was having trouble playing things like music and dialogue quips from the AI (kill leader announcements, circle close, etc). Figured it out just a few minutes ago. At this point I just have to find the most sensible way to hook the buffer, and dump it to disk.
  • Author
  • Localization

Durandal217, posted Mon Jul 08, 2019 7:54 pm (49222)


Lyxi wrote:
xyx0826 wrote:
Lyxi wrote:
yes sir! been spending about a month on it, got a lot of internal structures documented at this point and i found a path last night that leads to a directsoundbuffer->lock()

Amazing that you got the structs figured out! :heart:
I used to work on a GUI (actually pretty decent until I bombed it with a 2.0) for Overwatch's asset extractor. I assume you're working with C - if you need any help on the tool or a GUI frontend please lemme know.

Thank you for your offer, I don't have any experience GUI programming in CPP, so I might ask you for that help!

Really good news, I can now play every single sound in the game (including music). I was having trouble playing things like music and dialogue quips from the AI (kill leader announcements, circle close, etc). Figured it out just a few minutes ago. At this point I just have to find the most sensible way to hook the buffer, and dump it to disk.


Lyxi, you are GOD!!! If you need help testing i'd be more than happy to help! I cannot wait for the tool!
  • Author
  • Localization

xyx0826, posted Tue Jul 09, 2019 4:54 am (49228)


Lyxi wrote:
Thank you for your offer, I don't have any experience GUI programming in CPP, so I might ask you for that help!

Really good news, I can now play every single sound in the game (including music). I was having trouble playing things like music and dialogue quips from the AI (kill leader announcements, circle close, etc). Figured it out just a few minutes ago. At this point I just have to find the most sensible way to hook the buffer, and dump it to disk.

Inline hooking IDirectSoundBuffer::Unlock can probably be a way to go. I actually have a working 32-bit wrapper dll for that. If you're interested I can send the code over.
  • Author
  • Localization

superdave3k, posted Tue Jul 09, 2019 4:39 pm (49238)


Very nice progress. Sorry I disappeared but glad to see you guys kept going. Real life got busy and I forgot about this thread >.<
  • Author
  • Localization

Lyxi, posted Fri Jul 12, 2019 9:57 am (49269)


Greetings, I've now finished the first beta version of my miles 10 sound dumper. I think I have most bugs ironed out, but obviously please let me know if something is broken.

In order to use the sound dumper, you'll have to place it inside the Apex Legends folder, right where r5apex.exe is. Then using the command line you can play any sound (as far as I know) and dump them.

Code:
MSD                                     -- Open MSD to play sounds
MSD                            -- Dump an event ID
MSD          -- Dump a range of sounds, inclusive
MSD -l                                  -- Display list of all event IDs and names contained in audio files


Issues:
* Because I'm hooking into calls that fill a DirectSoundBuffer, sound data is gathered in real time. This means that dumping each event requires actually playing it. Dumping the entire event list could take quite a while, and some events don't actually end but rather loop forever (press ESC to stop recording a loop event once you've gathered enough sound data).
* Events can be composed of multiple different source material sounds that are chosen at random. For example, a taunt event might have three different voice lines but only one of them will be dumped when you request it. I don't know at the moment how to detect multiple samples, or how to select a specific one. Just something to keep in mind.

Misc:
* I think every event is playable now, but some events that are listed don't have data (eg most titanfall 2 sound events).

GitHub Source Code
Download
  • Author
  • Localization

Mages, posted Fri Jul 12, 2019 1:33 pm (49270)


Lyxi wrote:
Greetings, I've now finished the first beta version of my miles 10 sound dumper. I think I have most bugs ironed out, but obviously please let me know if something is broken.

In order to use the sound dumper, you'll have to place it inside the Apex Legends folder, right where r5apex.exe is. Then using the command line you can play any sound (as far as I know) and dump them.

Code:
MSD                                     -- Open MSD to play sounds
MSD                            -- Dump an event ID
MSD          -- Dump a range of sounds, inclusive
MSD -l                                  -- Display list of all event IDs and names contained in audio files


Issues:
* Because I'm hooking into calls that fill a DirectSoundBuffer, sound data is gathered in real time. This means that dumping each event requires actually playing it. Dumping the entire event list could take quite a while, and some events don't actually end but rather loop forever (press ESC to stop recording a loop event once you've gathered enough sound data).
* Events can be composed of multiple different source material sounds that are chosen at random. For example, a taunt event might have three different voice lines but only one of them will be dumped when you request it. I don't know at the moment how to detect multiple samples, or how to select a specific one. Just something to keep in mind.

Misc:
* I think every event is playable now, but some events that are listed don't have data (eg most titanfall 2 sound events).

GitHub Source Code
Download


Thanks a ton for the release! I've also been chipping away at this for a while now and it's nice to see a resolution. Looking at your finished code I was missing the WINAPI on the MilesStartup callback and I didn't get the MilesDriverCreate struct quite right. (Which is probably why I couldn't get past MilesProjectGetStatus when I was working on this).

Without running your code as I'm work, I think I remember Miles having multiple patch banks, (Titanfall 2), so it's probably worth turning IsPatched() into a loop that loads all patches for future proofing.

- Mages / Shrug~
  • Author
  • Localization

superdave3k, posted Fri Jul 12, 2019 6:23 pm (49273)


A on this - great job, huge tool for the community and much appreciated.
  • Author
  • Localization

Lyxi, posted Fri Jul 12, 2019 11:53 pm (49275)


Mages wrote:
Thanks a ton for the release! I've also been chipping away at this for a while now and it's nice to see a resolution. Looking at your finished code I was missing the WINAPI on the MilesStartup callback and I didn't get the MilesDriverCreate struct quite right. (Which is probably why I couldn't get past MilesProjectGetStatus when I was working on this).

Without running your code as I'm work, I think I remember Miles having multiple patch banks, (Titanfall 2), so it's probably worth turning IsPatched() into a loop that loads all patches for future proofing.

- Mages / Shrug~

superdave3k wrote:
A on this - great job, huge tool for the community and much appreciated.


You're welcome! I'll post some details about the internal layout of the various structs later. I'll also fix up IsPatched later 8-).

I've also pushed a minor update, see the commit log for more information.
  • Author
  • Localization

Durandal217, posted Sat Jul 13, 2019 2:17 am (49278)


when I try to display a list of event ids and names all that keeps happening is Play Event ID: Playing 1_second_fadeout (enter negative number to stop) and it keeps looping endlessly. Is that normal?
  • Author
  • Localization

Lyxi, posted Sat Jul 13, 2019 2:20 am (49279)


Durandal217 wrote:
when I try to display a list of event ids and names all that keeps happening is Play Event ID: Playing 1_second_fadeout (enter negative number to stop) and it keeps looping endlessly. Is that normal?


You're probably opening MSD and then typing in the -l command. You have to pass the -l command when you open MSD.
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.