VOGONS


Reply 80 of 381, by MST

User metadata
Rank Newbie
Rank
Newbie
autoexecdotbat wrote:

OK, are there any solutions for xp? from what I'm getting the alkemy universal is for win7. I want envirenmental audio support on my vm.

Under WinXP you do not need this, because DirectSound3D layer is present. This solution is dedicated for WInVista+ (WinVista, Win7, Win8, Win8.1, Win10).
I don't know how virtual machine supports it. As long on virtual machines hardware is also virtualized it depends on virtual driver implementation. I have no experience if EAX is supported on VMWare Workstation or Oracle VirtualBox for example. As far as I know, playing games on VM wasn't good idea, because directx support was very limited. Maybe nowadays VM has direct access to GPU, but I don't think so.

Reply 81 of 381, by mirh

User metadata
Rank Member
Rank
Member
MST wrote:
autoexecdotbat wrote:

OK, are there any solutions for xp? from what I'm getting the alkemy universal is for win7. I want envirenmental audio support on my vm.

Under WinXP you do not need this, because DirectSound3D layer is present. This solution is dedicated for WInVista+ (WinVista, Win7, Win8, Win8.1, Win10).
I don't know how virtual machine supports it. As long on virtual machines hardware is also virtualized it depends on virtual driver implementation. I have no experience if EAX is supported on VMWare Workstation or Oracle VirtualBox for example. As far as I know, playing games on VM wasn't good idea, because directx support was very limited. Maybe nowadays VM has direct access to GPU, but I don't think so.

Well, technically you can even play GTA V (directx 10) in VMware from a linux host nowadays.
Said this, I guess his problem was more like emulating eax 2, 3 and 4 (trivia: eax 1 is supported natively in vmware) starting from something completely software.
If it was on a real windows XP machine, I'd recommend him to get a real soundblaster or xonar (which can emulate eax even under XP), but he's not, and I'm not sure anybody ever thought to that case.
Perhaps indirectsound may remotely help, even though it won't definitively be like the real thing.

pcgamingwiki.com

Reply 83 of 381, by unic0rn

User metadata
Rank Newbie
Rank
Newbie

hi. new member here, found this thread after some more or less random search related to alchemy.

i've been through some small research after recently fighting with the sound in mass effect 1 (unreal engine 3, using openal - yes, i know that's not what alchemy is for) and in games in general, and some people here seem surprised for no reason.

there's only one thing that matters in regard to 3d audio in games: creative sucks.

the very reason why alchemy sounds like it does on non-creative cards, is actually pretty obvious: it goes the software route, via creative openal. creative's openal32.dll (used in games using openal natively as well), has 3 modes of operation.

1) if creative soundcard is detected, it uses the hardware
2) if not, it uses 'generic hardware' mode, emulating openal (and eax effects) using directsound3d
3) if 2) doesn't work, it uses 'generic software' - play something so the user can't complain that the sound doesn't work, but the effects are basically gone i guess, and it's limited to stereo only

now, guess what happens when you're using alchemy. since it's needed since vista, you're on vista or above. since you're on vista or above - that's right. 'generic hardware' mode doesn't work. so basically, unless you have creative soundcard, using openal from creative guarantees shitty sound, no matter if you're using that dll for alchemy or for native openal games.

software sound processing can sound right though.

http://openal-soft.org/

just follow the readme - all you need is to copy the hrtf folder to %appdata%\openal, create your config with alsoft-config (or just create alsoft.ini in %appdata% on your own - i'll paste mine below), and well - the most important thing - copy soft_oal.dll from bin\win32 folder to your game folder, renamed as openal32.dll. regardless if you're using alchemy or the game is using openal natively - it should definitely help for soundcards other than sound blasters.

my alsoft.ini is pretty simple actually:

[General]
sources=64
channels=stereo
stereo-mode=headphones
hrtf=true
resampler=sinc4
sample-type=float32

why the hrtf? obviously, such setup requires headphones. but trust me, it's worth it. check the youtube for some videos of quake 3 or unreal tournament using it.

now, as an alternative to alchemy, i would like to post one thing for testing. i didn't try alchemy myself, since i don't have creative soundcard, and all the unlockers posted here are, well, full of viruses, to say the least. i don't care about the explanations, i can understand one or two false alarms, but i won't risk it when virustotal lights up in red for more than half antivirus programs.

openal-soft is being worked on by its developer, but there's one more thing he created, that's unfortunately not in active development anymore.

http://repo.or.cz/w/dsound-openal.git

it is what it looks like - a simple alchemy-like solution. unfortunately, no docs, no website, no ready-to-use builds... oh wait. i've just compiled it few hours ago.

https://www.sendspace.com/file/eywb1e

some games may crash (tiberium wars does), some games may have reverb where there should be none (kotor 2), and in general games using miles sound system are more or less guaranteed to hang during exit. still, it works. i wouldn't waste my time with games using miles though, it has tons of backends and there's often no way to select which one it'll use (other than removing mss* files).

fallout 3 seems to work fine - i'm not entirely sure since the test was rather short and it was missing few sounds sometimes, but that's a matter of allowed audio channels - rising it above 64 should fix it. left 4 dead works fine with snd_legacy_surround set to 1.

overall, i prefer when the game supports openal natively, since mass effect 1 with openal-soft sounds absolutely brilliant, but i guess this wrapper may be useful for other games. it's a matter of tests though. also, even if enabling eax crashes the game, it still makes sense to use it for the hrtf alone.

Reply 85 of 381, by unic0rn

User metadata
Rank Newbie
Rank
Newbie
PhilsComputerLab wrote:

But that only works with OpenAL games? Or does it work with all EAX games as well?

openal-soft works with openal games, and as a backend for dsound.dll wrapper.

the compiled dsound.dll wrapper that i've posted, should work with all directsound3d/eax games (well, not really all - it's supposed to support up to eax 2), but that's untested - i don't have eax games that don't use miles sound system, and in case of those enabling eax usually causes trouble. i have a feeling - i may be wrong - that left 4 dead with legacy surround enabled plays some environmental effects where there weren't any before though. with legacy surround it shouldn't use miles i think, only directsound, but there's no eax logo in the game, so where those came from, i'm not sure - they're certainly defined in the game though, because they match the current location.

so in theory, dsound.dll with openal-soft should work just like alchemy. dsound.dll will be probably worse on the wrapper front, but openal-soft is much better than creative's openal, so if dsound.dll i've posted fails, just try alchemy with openal-soft and compare that with eax running on creative hardware - because that's what i'm interested in, how does it compare, and i guess most posters in this thread will be as well.

Reply 86 of 381, by x86++

User metadata
Rank Newbie
Rank
Newbie

Is the above directsound wrapper compatible with specific Windows OS and directX versions? Which functions are intercepted? Which are passed through to the system? Is there a list of specific games which are fully working with the wrapper under a set of conditions, such as the Windows environment? Have other users tested the wrapper? Is this superior to existing solutions?

Reply 87 of 381, by PhilsComputerLab

User metadata
Rank l33t++
Rank
l33t++

Fallout 3, Left 4 Dead and Mass Effect sound like rather new games. What about games such as F.E.A.R. or Splinter Cell Chaos Theory?

Now I have Creative cards, so I don't know if what you suggest applies to me.

I don't think I'll do recordings anymore. The ones I recorded, nobody has commented on differences of real hardware vs. ALchemy. There is a lot of talking going on in this thread but no recordings / evidence.

YouTube, Facebook, Website

Reply 88 of 381, by mirh

User metadata
Rank Member
Rank
Member
unic0rn wrote:

hi. new member here, found this thread after some more or less random search related to alchemy.

i've been through some small research after recently fighting with the sound in mass effect 1 (unreal engine 3, using openal - yes, i know that's not what alchemy is for) and in games in general, and some people here seem surprised for no reason.

Wait, wait, wait.
I lost a month this summer on that very game.
And even with 100% fully working Creative-love&life OpenAL, the problem is rather with device enumerating.

Now, I don't remember if it was something with the way WASAPI reports names since Vista, the way openal reports devices to the game and/or the way the game queries/compares to openAL.
But TL;DR you need default Windows output device to be configured, then you have to force the game to accept its name as reported by ALC_ENUMERATION_EXT, instead of ALC_ENUMERATE_ALL_EXT as it uses to do.
Otherwise it fallback to DirectSound hardware. Which in turn and again has the wrong name. And it fallback to software.
EDIT: My educated guess is that they screwed something with OpenAL Summer 2007 update, together with something about ISACT being so old and not updated to even support Windows 98, but no mention of Vista.

That's the reason you have to tinker with DeviceName in the .ini. But it's another story.

unic0rn wrote:
the very reason why alchemy sounds like it does on non-creative cards, is actually pretty obvious: it goes the software route, v […]
Show full quote

the very reason why alchemy sounds like it does on non-creative cards, is actually pretty obvious: it goes the software route, via creative openal. creative's openal32.dll (used in games using openal natively as well), has 3 modes of operation.

1) if creative soundcard is detected, it uses the hardware
2) if not, it uses 'generic hardware' mode, emulating openal (and eax effects) using directsound3d
3) if 2) doesn't work, it uses 'generic software' - play something so the user can't complain that the sound doesn't work, but the effects are basically gone i guess, and it's limited to stereo only

now, guess what happens when you're using alchemy. since it's needed since vista, you're on vista or above. since you're on vista or above - that's right. 'generic hardware' mode doesn't work. so basically, unless you have creative soundcard, using openal from creative guarantees shitty sound, no matter if you're using that dll for alchemy or for native openal games.

No, it doesn't work that biased way. At least officially.
This is the documentation
http://web.archive.org/web/20080102032457/htt … enal_vista.html
http://web.archive.org/web/20080609025748/htt … numeration.html
https://web.archive.org/web/20071031025256/ht … 5&categoryID=13

Openal32.dll is no "creative's" (I mean, they developed it, but I have no proof it's prejudiced).
It just looks for native implementation, period. Regardless of the vendor.
Native implementation that your sound card might or might not have (everybody from ADI to Realtek, and cmedia have one anyway).
Bugs (I guess only creative one can be considered finished) may impede them to be used.[*]
If missing it fallback to DirectSound hardware "Generic Hardware". Which is no more in Vista of course.
And if this is also missing it fallback to Generic Software (DirectSound software supports surround sound from Vista onward btw, but I'm not sure game knows)

Now, what I guess people fail to see is that ALchemy has its own "Generic Hardware" (but software) implementation: "Creative Software 3D Library".
This explains why the tool which should restore generic hardware by making use of (OpenAL thus) generic hardware, manages to accomplish the feat.
And even with no OpenAL installed at all, as I was wondering some days ago.
I guess this "abstraction layer" also explains where and how is even possible EAX 3 and 4 get supported, even though your hardware is a potato.

The question still remains though: is ALchemy not using "Native OpenAL Renderer" because it's harcoded to look for creative hardware [cm_oal? sens_oal? device name string? (and legit I mean, considering it was first meant to work only on X-Fi and Audigy cards)], or are we only misconfiguring something?

unic0rn wrote:

software sound processing can sound right though.

http://openal-soft.org/

There's nothing intrinsically bad with being software rather than hardware, definitively.
Though, I'd go easy with claiming something on that. I mean, it's definitively the best thing we have, I mean: open source, works on everything (even XP) and high quality and customization.
But I'm unsure on whether it managed to achieve original Creative "standard", if I can explain.

EDIT: very good work with that wrapper though, definitively.

unic0rn wrote:

that left 4 dead with legacy surround enabled plays some environmental effects where there weren't any before though. with legacy surround it shouldn't use miles i think, only directsound, but there's no eax logo in the game, so where those came from, i'm not sure - they're certainly defined in the game though, because they match the current location.

Please, don't confuse EAX with plain hardware accelerated directsound.
They are not the same thing, and I'm pretty sure not even the original half life 2 in 2004 supported the former.

[*]=And now that you make me think to it, I wonder if ALchemy may not be using a malfunctioning enumerator, like mass effect.

Last edited by mirh on 2016-09-01, 10:14. Edited 5 times in total.

pcgamingwiki.com

Reply 89 of 381, by MST

User metadata
Rank Newbie
Rank
Newbie
unic0rn wrote:

the unlockers posted here are, well, full of viruses, to say the least. i don't care about the explanations, i can understand one or two false alarms, but i won't risk it when virustotal lights up in red for more than half antivirus programs.

Hahaha! Patch was done using famous "diablo2oo2's Universal Patcher 2.26" and as long it includes a lot of very fine patching routines (file, memory, registry), can include additional files, includes player for chiptunes I'm not suprised about virustotal results. If you are really scared launch any VM you like, patch files, destroy whole VM image, then compare patched files with oryginal ones, to see if there are code injections or not. Also you can observe if any activity on firewall occure when you launch patcher. But I can agree, thath nowadays a lot of internet stuff is boundled with some kind of additional shit, so always use condoms, and use it at your own risk! Anyone can share patched files instead of patch, but patch is smaller, have really fine chiptune, and yes - it has amazing rating at virustotal.com 😀

Reply 90 of 381, by ZanQuance

User metadata
Rank Member
Rank
Member

Long debate with many quotes, I read them last night but I'm not adding to the quotes to answer all of you.

Alchemy is hardcoded during the ALC_ENUMERATION_EXT check to look for "Audigy" and "X-FI" strings, cards which have OpenAL hardware "native" support, if it doesn't find those strings somewhere (haven't dug deep enough) then it bails out and falls back to the generic creative 3D renderer. I'm sure their libs are coded so that OpenAL passes some efx params to the cards, they can do hardware processing after all.

I guess if one wants to trick it into doing Native support on say the CMI8788 with GX 2.5 you need to replace those string checks with the name of the card.
Not sure this would work, just a theory.

Software emulation provided it was coded accurate enough can do whatever hardware can. The perk of hardware is that it just does it better when software emulation isn't that good. The C64 SID chips are almost perfectly emulated, but the filters in the hardware give each one a unique sound which isn't easily emulated, thus the hardware sounds better overall.
The OPL3 chips are really well emulated now, but there are some sound differences depending on which card it was used in which might make it better than the emulation.

I'll check out the comparison videos later on.

Reply 91 of 381, by mirh

User metadata
Rank Member
Rank
Member

Thank you! 😊
Realtek, ADI, nForce or even OpenAL Soft native implementations would work too, right?

And if this is just really actually a "name check", we'd only need to edit drivers inf files or windows registry (\Enum\PCI or \Enum\HDAUDIO and/or \Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318})

pcgamingwiki.com

Reply 92 of 381, by ZanQuance

User metadata
Rank Member
Rank
Member

Oh the NFORCE2 boards! I forgot about those when I was thinking of this problem!
If you have the XP drivers working in Win7 32-bit, then you can test if Alchemy plays nice with other OpenAL accelerated hardware.
It's Creative so I doubt they do, especially with the hardcoded checks in Alchemy for Creative only boards, but that would be a good test to try out.
I had an abit nf7s 2.0 board a few years back, it had a cap go bad so my dad offered to fix it for me. I didn't hear back from him and found out he forgot about it then threw the board away thinking it was trash...>_< so I cannot test this out.

Got my little p8x32a 8-core propeller board doing some I2S work on the Aureal boards now, and I have class today so I'll be busy the rest of the night, but I'll check this on my CMI8788 later on with GX 2.5.

Reply 93 of 381, by unic0rn

User metadata
Rank Newbie
Rank
Newbie
x86++ wrote:

Is the above directsound wrapper compatible with specific Windows OS and directX versions? Which functions are intercepted? Which are passed through to the system? Is there a list of specific games which are fully working with the wrapper under a set of conditions, such as the Windows environment? Have other users tested the wrapper? Is this superior to existing solutions?

you would have to check the source code, i only compiled it - which was kinda problematic.

PhilsComputerLab wrote:

Fallout 3, Left 4 Dead and Mass Effect sound like rather new games. What about games such as F.E.A.R. or Splinter Cell Chaos Theory?

Now I have Creative cards, so I don't know if what you suggest applies to me.

I don't think I'll do recordings anymore. The ones I recorded, nobody has commented on differences of real hardware vs. ALchemy. There is a lot of talking going on in this thread but no recordings / evidence.

those aren't that new. as for f.e.a.r., i will be testing it, just not today or tomorrow. it should work though.

and if you have creative cards, it obviously doesn't apply to you, because for you it's a matter of using alchemy to get hardware support. as for the differences, it's not about real hardware vs alchemy - rather alchemy on sound blasters vs alchemy on openal-soft, since creative's software openal is, quite obviously, a piece of crap.

mirh wrote:
Wait, wait, wait. I lost a month this summer on that very game. And even with 100% fully working Creative-love&life OpenAL, th […]
Show full quote

Wait, wait, wait.
I lost a month this summer on that very game.
And even with 100% fully working Creative-love&life OpenAL, the problem is rather with device enumerating.

Now, I don't remember if it was something with the way WASAPI reports names since Vista, the way openal reports devices to the game and/or the way the game queries/compares to openAL.
But TL;DR you need default Windows output device to be configured, then you have to force the game to accept its name as reported by ALC_ENUMERATION_EXT, instead of ALC_ENUMERATE_ALL_EXT as it uses to do.
Otherwise it fallback to DirectSound hardware. Which in turn and again has the wrong name. And it fallback to software.

That's the reason you have to tinker with DeviceName in the .ini. But it's another story.

directsound? creative's openal is to blame, but it can't use directsound3d on vista and above, since it was removed, so it falls back to software. that's what i was pointing at.

true, it has some problems getting the hardware right, even on sound blasters. when you don't have one though, there still are problems. it tries generic hardware, which fails on vista and above, and ends up using generic software. the thing is, the game shows hardware sound as enabled, while in the log you're getting generic software. i've replaced openal32.dll with openal-soft and now even the log says that it's using openal-soft.

same problems are present in all games using unreal engine 3 before it switched to xaudio. devs are to blame, because they were using openal like the creative's solution is the only one - such games don't even check if you have openal support in your OS, they just install creative's openal library in the game directory and use it. solution for all openal-based games for those without sound blasters? remove their openal dlls, install openal-soft globally in the OS, problem solved.

mirh wrote:
No, it doesn't work that biased way. At least officially. This is the documentation http://web.archive.org/web/20080102032457/h […]
Show full quote

No, it doesn't work that biased way. At least officially.
This is the documentation
http://web.archive.org/web/20080102032457/htt … enal_vista.html
http://web.archive.org/web/20080609025748/htt … numeration.html
https://web.archive.org/web/20071031025256/ht … 5&categoryID=13

Openal32.dll is no "creative's" (I mean, they developed it, but I have no proof it's prejudiced).
It just looks for native implementation, period. Regardless of the vendor.
Native implementation that your sound card might or might not have (everybody from ADI to Realtek, and cmedia have one anyway).
Bugs (I guess only creative one can be considered finished) may impede them to be used.[*]
If missing it fallback to DirectSound hardware "Generic Hardware". Which is no more in Vista of course.
And if this is also missing it fallback to Generic Software (DirectSound software supports surround sound from Vista onward btw, but I'm not sure game knows)

Now, what I guess people fail to see is that ALchemy has its own "Generic Hardware" (but software) implementation: "Creative Software 3D Library".
This explains why the tool which should restore generic hardware by making use of (OpenAL thus) generic hardware, manages to accomplish the feat.
And even with no OpenAL installed at all, as I was wondering some days ago.
I guess this "abstraction layer" also explains where and how is even possible EAX 3 and 4 get supported, even though your hardware is a potato.

The question still remains though: is ALchemy not using "Native OpenAL Renderer" because it's harcoded to look for creative hardware [cm_oal? sens_oal? device name string? (and legit I mean, considering it was first meant to work only on X-Fi and Audigy cards)], or are we only misconfiguring something?

oh, but it does. native implementation, you say. realtek, you say. i have gigabyte k8nmf-9 board, nforce 4, realtek audio. openal support? searched for it. didn't found anything (soundback is something else and from what i've read, it's crap).

of course, if you have some other - good - audio card, you most likely have openal support. you may also have vendor-specific solution, like the one from asus for xonars i suppose, making alchemy obsolete. that's not the point though. the point is, if there's an integrated audio chip with official openal support, let me know. all i know is that 'everything' supported openal when the xp was alive. then came vista, directsound3d died and suddenly - the official, made by creative - openal library lost the generic hardware route. and the same loss of directsound3d is the whole point of using alchemy, right?

also, i guess i just wasn't clear enough/i've mixed two dlls. openal32 is an enumerator, while wrap_oal is creative's actual implementation, as used in mass effect 1. i'm not sure if that enumerator is bugged or prejudiced, because if i'm about to force something to use a particular openal implementation, i'm certainly not going an enumerator to go in my way.

that is, i've replaced the openal32.dll in mass effect with openal-soft dll. because if you can just throw away the enumerator and replace it with a specific openal implementation, then why not? perhaps that's what should be tried with alchemy (i'm not using it for the reasons mentioned earlier).

as for creative software 3d library, my only guess is - since alchemy is all hardcoded to use creative cards - that it's supposed to emulate the effects that a particular card doesn't support. makes sense, actually, and in such a case a game may sound better with alchemy than without it on the same creative hardware.

unless you're saying that it's used to emulate eax in software, even with no openal installed, on unlocked alchemy installation. if so, there are quite a few contradicting statements in this thread.

Reply 94 of 381, by Davros

User metadata
Rank l33t
Rank
l33t
unic0rn wrote:

as for creative software 3d library, my only guess is - since alchemy is all hardcoded to use creative cards - that it's supposed to emulate the effects that a particular card doesn't support. makes sense, actually, and in such a case a game may sound better with alchemy than without it on the same creative hardware.

As part of a major re-architecture of the audio subsystem from Windows Vista™ and above, Microsoft has made the radical decision to remove the Hardware Abstraction Layer (HAL) for DirectSound and DirectSound3D. The HAL is the layer found on earlier Windows Operating Systems that enabled an audio accelerator such as the Sound Blaster to provide DirectSound3D applications with hardware-accelerated audio.

Creative ALchemy allows Sound Blaster owners to run their favorite DirectSound3D games and experience them as game developers have intended from Windows Vista™ and above - with full hardware accelerated 3D Audio and EAX support. This is achievable by translating DirectSound3D into OpenAL calls.

Guardian of the Sacred Five Terabyte's of Gaming Goodness

Reply 95 of 381, by unic0rn

User metadata
Rank Newbie
Rank
Newbie
Davros wrote:
unic0rn wrote:

as for creative software 3d library, my only guess is - since alchemy is all hardcoded to use creative cards - that it's supposed to emulate the effects that a particular card doesn't support. makes sense, actually, and in such a case a game may sound better with alchemy than without it on the same creative hardware.

As part of a major re-architecture of the audio subsystem from Windows Vista™ and above, Microsoft has made the radical decision to remove the Hardware Abstraction Layer (HAL) for DirectSound and DirectSound3D. The HAL is the layer found on earlier Windows Operating Systems that enabled an audio accelerator such as the Sound Blaster to provide DirectSound3D applications with hardware-accelerated audio.

Creative ALchemy allows Sound Blaster owners to run their favorite DirectSound3D games and experience them as game developers have intended from Windows Vista™ and above - with full hardware accelerated 3D Audio and EAX support. This is achievable by translating DirectSound3D into OpenAL calls.

really? i wouldn't know.

did you read posts on this page at all? tip - 'software 3d library' doesn't mean alchemy - just a component of it.

Reply 96 of 381, by mirh

User metadata
Rank Member
Rank
Member
ZanQuance wrote:

If you have the XP drivers working in Win7 32-bit, then you can test if Alchemy plays nice with other OpenAL accelerated hardware.

For as stupid as it sounds.. I can't believe nvidia ain't supporting that not even under vista. And not even nForce3....
The chipset itself should play nicely anyway, ATA controller aside (but there are plenty of forums that can help)

Speaking of the SoundStorm APU.. I quite believe it should be possible to force latest official driver to work (even on x64)
Or If any, in worst case I guess mixing it with this and this could do the trick

You know what? It would be crazily cool if somebody cool reverse engineer that, so that xbox emulator developers could have something to work on.

unic0rn wrote:

those aren't that new. as for f.e.a.r., i will be testing it, just not today or tomorrow. it should work though.

They are new by "DirectSound standards".
Even better, I'm pretty sure they are some of the latest games that still had some kind of interaction with hardware.

unic0rn wrote:

directsound? creative's openal is to blame, but it can't use directsound3d on vista and above, since it was removed, so it falls back to software. that's what i was pointing at.

DirectSound hardware is what you'd call "Generic Hardware" in OpenAL, that was what I was saying.

And it's no Creative fault in this case.
Or let's even say it was their fault to give Bioware XACT with bugged enumeration, but OpenAL design is pretty well reasoned.

unic0rn wrote:

true, it has some problems getting the hardware right, even on sound blasters. when you don't have one though, there still are problems. it tries generic hardware, which fails on vista and above, and ends up using generic software. the thing is, the game shows hardware sound as enabled, while in the log you're getting generic software. i've replaced openal32.dll with openal-soft and now even the log says that it's using openal-soft.

same problems are present in all games using unreal engine 3 before it switched to xaudio. devs are to blame, because they were using openal like the creative's solution is the only one - such games don't even check if you have openal support in your OS, they just install creative's openal library in the game directory and use it. solution for all openal-based games for those without sound blasters? remove their openal dlls, install openal-soft globally in the OS, problem solved.

It's not OpenAL libraries fault, jesus! Many games are reported to work just fine, and with the same dlls.

Of course if you ditch the router altogether and you replace it with a single implementation, game has to use that willy-nilly.

Also, I can't see why devs would be to blame for not checking openal, after they shipped games with dll themselves.
If any, they did a crappy job for statically leaving those libraries there, and not taking into account perhaps in the future newer versions couldn't have been released.
But that's another story.

If you have problems, you can choose to delete them, so [updated] system dlls in windows folder are used.
Quality shouldn't be affected, given that's expected to derive from *_oal implementations.

And even then I wouldn't be sure what you can do if game as broken querying. You have to fix that in the .ini.

unic0rn wrote:

oh, but it does. native implementation, you say. realtek, you say. i have gigabyte k8nmf-9 board, nforce 4, realtek audio. openal support? searched for it. didn't found anything (soundback is something else and from what i've read, it's crap).

SoundBack may even be crap at restoring DirectSound.. but there's where Realtek native OAL implementation lies.
And no shit your nForce isn't working. Nvidia cut SoundStorm DSP starting with the preceding series. . And the fact your motherboard has only a Realtek ALC850 should have hinted you that.

unic0rn wrote:

all i know is that 'everything' supported openal when the xp was alive. then came vista, directsound3d died and suddenly - the official, made by creative - openal library lost the generic hardware route. and the same loss of directsound3d is the whole point of using alchemy, right?

Yes.
Though, I don't understand why you are emphasizing Creative has anything to do with this.
Native > DS3D > Software seems a pretty reasonable thing, admitted everybody is free to come up with a native solution.

unic0rn wrote:

also, i guess i just wasn't clear enough/i've mixed two dlls. openal32 is an enumerator, while wrap_oal is creative's actual implementation, as used in mass effect 1. i'm not sure if that enumerator is bugged or prejudiced, because if i'm about to force something to use a particular openal implementation, i'm certainly not going an enumerator to go in my way.

I have never said OAL enumerator had to be bugged or prejudiced.
That wondering was addressed at ALchemy own "selecting".
....

unic0rn wrote:

perhaps that's what should be tried with alchemy (i'm not using it for the reasons mentioned earlier).

...
Alchemy that for replies to your aforementioned reasons you should try.

unic0rn wrote:

unless you're saying that it's used to emulate eax in software, even with no openal installed, on unlocked alchemy installation. if so, there are quite a few contradicting statements in this thread.

That's what everybody with unlocked versions has always been experiencing, and that until recently was believed to be the very sole core of restoration.
It seems that wasn't the whole story.

And I have to say I can't understand why people are going crazy about this since I tried to point out the actual issue.

Last edited by mirh on 2016-03-19, 20:06. Edited 1 time in total.

pcgamingwiki.com

Reply 97 of 381, by MST

User metadata
Rank Newbie
Rank
Newbie
mirh wrote:

Thank you! 😊
Realtek, ADI, nForce or even OpenAL Soft native implementations would work too, right?

And if this is just really actually a "name check", we'd only need to edit drivers inf files or windows registry (\Enum\PCI or \Enum\HDAUDIO and/or \Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318})

Hmm... not so easy.

In the meantime I did quick analysis, and ZanQuance is right. First of all ALchemy searches for native Creative OpenAL implementation library "ct_oal.dll" within system directory (not game directory). For x32 Windows it will look for "C:\Windows\System32\ct_oal.dll". If will found it then it tries to enumerate OpenAL devices using ALC_ENUMERATION_EXT. If any OpenAL device name contains (not need to be equal) following strings: "X-Fi", "Audigy", "SE-300PCIE", then ALchemy do another check if default playing device also contains the same strings. If both checks are not succeed then it will output to "dsoundlog.txt" message "Native Device not default". So, I renamed "OpenAL Soft" implementation "soft_oal.dll" to "ct_oal.dll", then copied to "C:\Windows\System32\" dir. OpenAL Soft implementation returns device name "OpenAL Soft". As I wrote ALchemy grants only devices which name contains specified strings, so I changed it's device name by overwriting oryginal name partial with "X-Fi". Last thing Was change default sound playing device name to contain "X-Fi". Yes, It can be done using registry, but there is easier way to do it. Go to Windows control panel, open Sound. Your default device have two names, label (for me "Speakers") and device name taken from registry (for me "Realtek High Definition Audio"). Label can be changed using Properties button. ALchemy compares it's hardcoded strings with your default device string combined with label and device name in brackets, so for me default device name was "Speakers (Realtek High Definition Audio)". If this name contains for example "X-Fi" it will be granded. So what I did, I changed label using Properties button from "Speakers" to "Speakers X-Fi". That's all. So ALchemy found OpenAL device "X-Fi", then found that my default playing device is also "X-Fi", so tried to initialize OpenAL from "ct_oal.dll". And this is where I stucked. Now I can found "OpenAL initialization failed" within "dsoundlog.txt". If OpenAL fails then sound is redirected for some kind of software processing which sounds not good enough, the same when there are no "ct_oal.dll" and "OpenAL32.dll" and "wrap_oal.dll" and other "*_oal.dll" available within system directory at all. Also tried to copy Realtek native implementation "rtk_oal.dll" (taken from 3DSoundBack) to "ct_oal.dll" but in this case ALchemy initialization failed and there is no sound redirection at all.

I don't know if there is any kind of special native "ct_oal.dll" initialization routine, which differs from other implementations, or maybe there are another checks. Maybe someone will be able to explain it. Also it could be helpful if anyone share his ALchemy log "dsoundlog.txt", when real Creative hardware is present.

Reply 98 of 381, by mirh

User metadata
Rank Member
Rank
Member

You two guys are awesome!
A̶n̶y̶w̶a̶y̶,̶ ̶I̶ ̶w̶o̶u̶l̶d̶n̶'̶t̶ ̶b̶e̶ ̶s̶o̶ ̶e̶a̶s̶y̶ ̶w̶i̶t̶h̶ ̶t̶h̶a̶t̶ ̶"̶i̶t̶ ̶m̶u̶s̶t̶ ̶b̶e̶ ̶l̶o̶o̶k̶i̶n̶g̶ ̶f̶o̶r̶ ̶c̶t̶_̶o̶a̶l̶.̶d̶l̶l̶"̶.̶
EDIT: ok, it seems SoundBlaster Z and Recon3D (sens_oal.dll) have a pretty bad time too.
Never mind.

Also, you might have not noticed, that every time I wrote "Using Native OpenAL Renderer", quotation marks had links.
That's definitively the correct log entry.

Last but not least, I wonder if OAL initialization isn't failing since dll name is (may be?) very important for the sound card driver itself to start the thing.
Perhaps a symlink from ct_oal.dll to whatever_oal.dll might give better results?

Last edited by mirh on 2016-04-23, 14:25. Edited 1 time in total.

pcgamingwiki.com

Reply 99 of 381, by unic0rn

User metadata
Rank Newbie
Rank
Newbie
MST wrote:
Hmm... not so easy. […]
Show full quote
mirh wrote:

Thank you! 😊
Realtek, ADI, nForce or even OpenAL Soft native implementations would work too, right?

And if this is just really actually a "name check", we'd only need to edit drivers inf files or windows registry (\Enum\PCI or \Enum\HDAUDIO and/or \Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318})

Hmm... not so easy.

In the meantime I did quick analysis, and ZanQuance is right. First of all ALchemy searches for native Creative OpenAL implementation library "ct_oal.dll" within system directory (not game directory). For x32 Windows it will look for "C:\Windows\System32\ct_oal.dll". If will found it then it tries to enumerate OpenAL devices using ALC_ENUMERATION_EXT. If any OpenAL device name contains (not need to be equal) following strings: "X-Fi", "Audigy", "SE-300PCIE", then ALchemy do another check if default playing device also contains the same strings. If both checks are not succeed then it will output to "dsoundlog.txt" message "Native Device not default". So, I renamed "OpenAL Soft" implementation "soft_oal.dll" to "ct_oal.dll", then copied to "C:\Windows\System32\" dir. OpenAL Soft implementation returns device name "OpenAL Soft". As I wrote ALchemy grants only devices which name contains specified strings, so I changed it's device name by overwriting oryginal name partial with "X-Fi". Last thing Was change default sound playing device name to contain "X-Fi". Yes, It can be done using registry, but there is easier way to do it. Go to Windows control panel, open Sound. Your default device have two names, label (for me "Speakers") and device name taken from registry (for me "Realtek High Definition Audio"). Label can be changed using Properties button. ALchemy compares it's hardcoded strings with your default device string combined with label and device name in brackets, so for me default device name was "Speakers (Realtek High Definition Audio)". If this name contains for example "X-Fi" it will be granded. So what I did, I changed label using Properties button from "Speakers" to "Speakers X-Fi". That's all. So ALchemy found OpenAL device "X-Fi", then found that my default playing device is also "X-Fi", so tried to initialize OpenAL from "ct_oal.dll". And this is where I stucked. Now I can found "OpenAL initialization failed" within "dsoundlog.txt". If OpenAL fails then sound is redirected for some kind of software processing which sounds not good enough, the same when there are no "ct_oal.dll" and "OpenAL32.dll" and "wrap_oal.dll" and other "*_oal.dll" available within system directory at all. Also tried to copy Realtek native implementation "rtk_oal.dll" (taken from 3DSoundBack) to "ct_oal.dll" but in this case ALchemy initialization failed and there is no sound redirection at all.

I don't know if there is any kind of special native "ct_oal.dll" initialization routine, which differs from other implementations, or maybe there are another checks. Maybe someone will be able to explain it. Also it could be helpful if anyone share his ALchemy log "dsoundlog.txt", when real Creative hardware is present.

i suggest recompiling openal-soft with some logging of openal calls enabled to see exactly what alchemy tries to do that fails.

my guess is it bails out on something like EAX5 since creative cards have their own extensions to openal that openal-soft doesn't support. after all, alchemy was written to work on sound blasters - they don't give a damn about the rest.