Implement FAPOFX #40

Open
opened 2018-10-04 10:03:48 -05:00 by flibitijibibo · 6 comments
flibitijibibo commented 2018-10-04 10:03:48 -05:00 (Migrated from github.com)

I just finished stubbing in the four effects provided by XAPOFX:

github.com/FNA-XNA/FAudio@12a918bc86

This will improve compatibility with games that depend on it, but note that I have NOT implemented the XAPOFX DLLs. I've found that the X3DAudio DLL has given us more than enough trouble to warrant putting that off deliberately until we have something that can actively go out for use in something like Proton, so for this we'll do that after everything else is written.

Here's the checklist:

Here's the MSDN documentation for XAPOFX.

I just finished stubbing in the four effects provided by XAPOFX: https://github.com/FNA-XNA/FAudio/commit/12a918bc86e135b064d043366a19fabd7869c0d1 This will improve compatibility with games that depend on it, but note that I have NOT implemented the XAPOFX DLLs. I've found that the X3DAudio DLL has given us more than enough trouble to warrant putting that off deliberately until we have something that can actively go out for use in something like Proton, so for this we'll do that after everything else is written. Here's the checklist: - [ ] Write `testfx` program, similar to [testreverb](https://github.com/FNA-XNA/FAudio/tree/master/utils/testreverb) - [ ] [FXEQ](https://github.com/FNA-XNA/FAudio/blob/master/src/FAPOFX_eq.c) - [ ] [FXMasteringLimiter](https://github.com/FNA-XNA/FAudio/blob/master/src/FAPOFX_masteringlimiter.c) - [ ] [FXReverb](https://github.com/FNA-XNA/FAudio/blob/master/src/FAPOFX_reverb.c) - Maybe rip off FAudioFXReverb? - [ ] [FXEcho](https://github.com/FNA-XNA/FAudio/blob/master/src/FAPOFX_echo.c) - [ ] Wrapper DLL Project Files Here's the [MSDN documentation for XAPOFX](https://docs.microsoft.com/en-us/windows/desktop/xaudio2/xapofx-overview).
flibitijibibo commented 2018-10-04 10:26:14 -05:00 (Migrated from github.com)

If you need the CLSIDs for XAPOFX, you can find them here (sorry Johan!):

https://github.com/ValveSoftware/wine/blob/proton_3.7/include/xapofx.h

If you need the CLSIDs for XAPOFX, you can find them here (sorry Johan!): https://github.com/ValveSoftware/wine/blob/proton_3.7/include/xapofx.h
GloriousEggroll commented 2018-10-19 20:45:02 -05:00 (Migrated from github.com)

Heya, just wanted to add on to this, these DLLs are needed for quite a few games including some that have already been whitelisted by steam (Wolfenstein: TNO/TOB). I went to test the WMA PR in warframe, and came across it wanting xapofx1_5. I then removed the xapofx dlls from being set as native, and came across this:

3.652 Sys [Info]: S0009:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\xaudio2_7.dll"
p0009:err:ole:CoGetClassObject no class object {5a508685-a254-4fba-9b82-9a24b00306af} could be created for context 0x1

which upon further searching, lead me to this old bug report which had been fixed by a stub:

https://bugs.winehq.org/show_bug.cgi?id=26808

obviously you know a "lot of games" need these, not trying to beat a dead horse. I'm just mentioning in particular because some of those games are whitelisted on steam play.

Heya, just wanted to add on to this, these DLLs are needed for quite a few games including some that have already been whitelisted by steam (Wolfenstein: TNO/TOB). I went to test the WMA PR in warframe, and came across it wanting xapofx1_5. I then removed the xapofx dlls from being set as native, and came across this: ``` 3.652 Sys [Info]: S0009:err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\xaudio2_7.dll" p0009:err:ole:CoGetClassObject no class object {5a508685-a254-4fba-9b82-9a24b00306af} could be created for context 0x1 ``` which upon further searching, lead me to this old bug report which had been fixed by a stub: https://bugs.winehq.org/show_bug.cgi?id=26808 obviously you know a "lot of games" need these, not trying to beat a dead horse. I'm just mentioning in particular because some of those games are whitelisted on steam play.
flibitijibibo commented 2018-10-19 21:23:07 -05:00 (Migrated from github.com)

Much like X3DAudio I’m recommending the DXSDK version of XAPOFX for now - they should be compatible with FAudio and its COM wrapper. Implement the effects first, then we can talk about the DLL.

Much like X3DAudio I’m recommending the DXSDK version of XAPOFX for now - they should be compatible with FAudio and its COM wrapper. Implement the effects first, then we can talk about the DLL.
flibitijibibo commented 2018-10-21 19:57:33 -05:00 (Migrated from github.com)

As of this commit the DLL should be a one-line function:

github.com/FNA-XNA/FAudio@a3d804da8f

Still not making it until the rest is finished but it helps make the last step really quick.

As of this commit the DLL should be a one-line function: https://github.com/FNA-XNA/FAudio/commit/a3d804da8fdec5b3bc7a5b58ed6111539fdb20af Still not making it until the rest is finished but it helps make the last step really quick.
flibitijibibo commented 2018-10-24 11:25:31 -05:00 (Migrated from github.com)

While looking at the Wine built-in path again I ended up implementing the source, which should work as a native DLL. No project files though, so this is solely to fix up the built-ins:

github.com/FNA-XNA/FAudio@260dd90148

While looking at the Wine built-in path again I ended up implementing the source, which should work as a native DLL. No project files though, so this is solely to fix up the built-ins: https://github.com/FNA-XNA/FAudio/commit/260dd901481509a9d13082e6d9fc77f4765e8c87
flibitijibibo commented 2018-11-11 12:48:55 -06:00 (Migrated from github.com)

Ended up adding XAPOFX for Warframe as well...

github.com/FNA-XNA/FAudio@7035cc5833

So it's just the Visual Studio projects that's left. Thankfully nobody but me and XNA4 people have VS2010 anymore, so surely this won't get done before the actual code...?!

Ended up adding XAPOFX for Warframe as well... https://github.com/FNA-XNA/FAudio/commit/7035cc5833ce2fac5be795d2010ff885499160cf So it's just the Visual Studio projects that's left. Thankfully nobody but me and XNA4 people have VS2010 anymore, so surely this won't get done before the actual code...?!
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-FNA-XNA/FAudio#40
No description provided.