Creative + Direct Sound + Vista, DDay crashes
I have a Creative X-Fi and to get EAX effects running in Vista I have to install Creative ALchemy.
If I use Creative ALchemy it adds a "dsound.dll" and a "dsound.ini" to the game (for example in Doomsday\bin).
But if I select "Direct Sound" in Doomsday the game crashes.
With "SDL_Mixer" (ALchemy activated or not doesn't matter) or "Direct Sound" without ALchemy it works, but of course without EAX-effects.
Is this already known?
I'm using Vista Home Premium 32 Bit
Here is the Doomsday out, but it just seems that he can't initialize the Sound hardware using Direct Sound and ALchemy.
If I use Creative ALchemy it adds a "dsound.dll" and a "dsound.ini" to the game (for example in Doomsday\bin).
But if I select "Direct Sound" in Doomsday the game crashes.
With "SDL_Mixer" (ALchemy activated or not doesn't matter) or "Direct Sound" without ALchemy it works, but of course without EAX-effects.
Is this already known?
I'm using Vista Home Premium 32 Bit
Here is the Doomsday out, but it just seems that he can't initialize the Sound hardware using Direct Sound and ALchemy.
Z_Create: New 32.0 MB memory volume.
Con_Init: Initializing the console.
Executable: Version 1.9.0-beta6.5 Jul 31 2009 (DGL).
Sys_InitWindowManager: Using Win32 window management.
Z_Create: New 32.0 MB memory volume.
createContext: OpenGL.
OpenGL information:
Vendor: NVIDIA Corporation
Renderer: GeForce 8800 GT/PCI/SSE2
Version: 3.1.0
GLU Version: 1.2.2.0 Microsoft Corporation
Available Texture units: 4
Maximum Texture Size: 8192
Maximum Anisotropy: 16
Num Texture Formats: 3
Line Width Granularity: 0.1
Line Width Range: 0.5...10.0
Extensions:
GL_ARB_color_buffer_float GL_ARB_compatibility
GL_ARB_copy_buffer GL_ARB_depth_buffer_float
GL_ARB_depth_texture GL_ARB_draw_buffers
GL_ARB_draw_instanced GL_ARB_fragment_program
GL_ARB_fragment_program_shadow GL_ARB_fragment_shader
GL_ARB_half_float_pixel GL_ARB_half_float_vertex
GL_ARB_framebuffer_object GL_ARB_geometry_shader4
GL_ARB_imaging GL_ARB_map_buffer_range
GL_ARB_multisample GL_ARB_multitexture
GL_ARB_occlusion_query GL_ARB_pixel_buffer_object
GL_ARB_point_parameters GL_ARB_point_sprite
GL_ARB_shadow GL_ARB_shader_objects
GL_ARB_shading_language_100 GL_ARB_texture_border_clamp
GL_ARB_texture_buffer_object GL_ARB_texture_compression
GL_ARB_texture_cube_map GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_dot3
GL_ARB_texture_float GL_ARB_texture_mirrored_repeat
GL_ARB_texture_non_power_of_tw GL_ARB_texture_rectangle
GL_ARB_texture_rg GL_ARB_transpose_matrix
GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object
GL_ARB_vertex_program GL_ARB_vertex_shader
GL_ARB_window_pos GL_ATI_draw_buffers
GL_ATI_texture_float GL_ATI_texture_mirror_once
GL_S3_s3tc GL_EXT_texture_env_add
GL_EXT_abgr GL_EXT_bgra
GL_EXT_blend_color GL_EXT_blend_equation_separate
GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_compiled_vertex_array
GL_EXT_Cg_shader GL_EXT_bindable_uniform
GL_EXT_depth_bounds_test GL_EXT_direct_state_access
GL_EXT_draw_buffers2 GL_EXT_draw_instanced
GL_EXT_draw_range_elements GL_EXT_fog_coord
GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample
GL_EXT_framebuffer_object GL_EXTX_framebuffer_mixed_form
GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4
GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4
GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil
GL_EXT_packed_float GL_EXT_packed_pixels
GL_EXT_pixel_buffer_object GL_EXT_point_parameters
GL_EXT_provoking_vertex GL_EXT_rescale_normal
GL_EXT_secondary_color GL_EXT_separate_shader_objects
GL_EXT_separate_specular_color GL_EXT_shadow_funcs
GL_EXT_stencil_two_side GL_EXT_stencil_wrap
GL_EXT_texture3D GL_EXT_texture_array
GL_EXT_texture_buffer_object GL_EXT_texture_compression_lat
GL_EXT_texture_compression_rgt GL_EXT_texture_compression_s3t
GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotro GL_EXT_texture_integer
GL_EXT_texture_lod GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp GL_EXT_texture_object
GL_EXT_texture_sRGB GL_EXT_texture_swizzle
GL_EXT_texture_shared_exponent GL_EXT_timer_query
GL_EXT_vertex_array GL_EXT_vertex_array_bgra
GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat
GL_KTX_buffer_region GL_NV_blend_square
GL_NV_copy_depth_to_color GL_NV_copy_image
GL_NV_depth_buffer_float GL_NV_conditional_render
GL_NV_depth_clamp GL_NV_explicit_multisample
GL_NV_fence GL_NV_float_buffer
GL_NV_fog_distance GL_NV_fragment_program
GL_NV_fragment_program_option GL_NV_fragment_program2
GL_NV_framebuffer_multisample_ GL_NV_geometry_shader4
GL_NV_gpu_program4 GL_NV_half_float
GL_NV_light_max_exponent GL_NV_multisample_coverage
GL_NV_multisample_filter_hint GL_NV_occlusion_query
GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object
GL_NV_parameter_buffer_object2 GL_NV_pixel_data_range
GL_NV_point_sprite GL_NV_primitive_restart
GL_NV_register_combiners GL_NV_register_combiners2
GL_NV_texgen_reflection GL_NV_texture_compression_vtc
GL_NV_texture_env_combine4 GL_NV_texture_expand_normal
GL_NV_texture_rectangle GL_NV_texture_shader
GL_NV_texture_shader2 GL_NV_texture_shader3
GL_NV_transform_feedback GL_NV_vertex_array_range
GL_NV_vertex_array_range2 GL_NV_vertex_program
GL_NV_vertex_program1_1 GL_NV_vertex_program2
GL_NV_vertex_program2_option GL_NV_vertex_program3
GL_NVX_conditional_render GL_NV_vertex_buffer_unified_me
GL_NV_shader_buffer_load GL_SGIS_generate_mipmap
GL_SGIS_texture_lod GL_SGIX_depth_texture
GL_SGIX_shadow GL_SUN_slice_accum
GL_WIN_swap_hint WGL_EXT_swap_control
Extensions (WGL):
WGL_ARB_buffer_region WGL_ARB_extensions_string
WGL_ARB_make_current_read WGL_ARB_multisample
WGL_ARB_pbuffer WGL_ARB_pixel_format
WGL_ARB_pixel_format_float WGL_ARB_render_texture
WGL_ATI_pixel_format_float WGL_ARB_create_context
WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB
WGL_EXT_pixel_format_packed_fl WGL_EXT_swap_control
WGL_NV_float_buffer WGL_NV_multisample_coverage
WGL_NV_render_depth_texture WGL_NV_render_texture_rectangl
DGL Configuration:
NPOT Textures: Disabled
Texture Compression: Enabled
Variable Texture Anisotropy: Enabled
Utilized Texture Units: 2
Multisampling: Enabled (32)
createContext: OpenGL.
GL_Init: Initializing Doomsday Graphics Library.
Multitexturing enabled (full).
Sys_Init: Setting up machine state.
Sys_Init: Initializing keyboard, mouse and joystick.
I_InitJoystick: TWIN SHOCK JOYPAD
Sys_InitTimer.
Sys_InitMixer: Lautsprecher (Creative SB X-Fi)
Driver: DirectSound
Comments
Most likely the outstanding issues with the dsound plugin won't be addressed as it seems somewhat pointless if we intend to (re)introduce an FMOD plugin.
EDIT: Why did the Deng team give up on OpenAL again - out of curiosity? It still supports hardware acceleration 100% under DirectX10 and 11 (Vista/7) as long as the driver supports it - all the ALchemy capable cards are, thats what ALchemy is after all (a DirectSound -software- to OpenAL -hardware- wrapper).
The Direct Sound API was phased out under Windows for very good reasons, not least of which were the ties it had to the (ancient) method of managing the audio pipeline using Windows audio mixer interfaces et al.
In order to provide high quality audio (environmental effects, 3d positioning etc) under both XP and Vista/Win7 (whilst simultaneously supporting the sorry state of affairs that is audio under *nix) would basically require two entirely separate output paths.
Going forward, I would like to see the OpenAL plugin retained but we'll see.
Agreed... when I first tried Vista Beta, I was impressed with WASAPI - particularly the volume mixer being capable of per-stream volume/muting. By ancient method I assume you mean Media Control Interface (MCI) - that's been around since Windows 95 )
Doesn't the official OpenAL stack or "runtime" provide easily-installable binaries for all OS's Doomsday runs on? I remember using OpenAL in 1.8.6 under XP was the best one for me - I guess there's more to it that I'm not familiar with.
I hope too to see Doomsday one day running on OpenAL at a core level, how much more can SDL handle? Of course when it comes down to it, whichever is easiest to program and the most ambiguous tech will be the DeFacto and benchmark of Deng development (I need to stop comparing OpenAL to OpenGL).
If I may digress, either one though really I don't think too many people will complain as long as it works and is stable. Sound quality is a much neglected thing (probably 95% of home PC's run onboard APU's only) and even I never bothered to update my descreet ISA AWE32 as soon as I hit the Win98+AC'97 age - my current system being an X2 with Realtek Azalia onboard (the literal successor to AC'97 incase you didn't know). Out of curiosity, if I were to say - upgrade to an Audigy - would I get an FPS increase in *any* game? Even though i'm on Windows 7? I assume it'd only be for OpenAL native games (classic example is Quake 4) but with today's Dual and Quad core CPU's, is the performance increase provided by hardware sound really that much? I never bothered to research it.
Regardless of what happens, either one interfaced with an FMOD layer on-top of it will be glorious. Or at least something which supports Module/Tracker formats for music! BASS library would be supreme but its not free.
Not to worry, i've winded this thread into a very liberal rant - how dare I distract thee from squishing those bugs and nailing that Unified Networking core! I fully respect and see complete reason in the current roadmap and the priorities for Doomsday, you've all done so well and it's still somewhat exciting =D>
An interesting extract from the Wikipedia article at http://en.wikipedia.org/wiki/DirectSound#Windows_Vista
As far as DirectSound is concerned, it belongs in the trash bin for all I care. We should concentrate on FMOD, OpenAL, and SDL_mixer (in that order of priority).
Indeed, though, if FMOD can do it all "out-of-the-box", that'd save a lot more work than having to worry about OpenAL + Vorbis SDK + [whatever other format SDK] + [...]
@Self - KISS.... Keep it Simple, Stupid! :P
also do you guys know about openal soft? http://kcat.strangesoft.net/openal.html
I believe FMOD does support software-rendering of MIDI with custom soundfonts, so it should produce some very nice results out of the original music (providing a good soundfont is available, of course).
I think FMOD is the way to go over OpenAL simply because it's more capable in a smaller package. Creating dynamic soundtracks for a first-person-adventure in Doomsday would then be 100% capable in the Sound and Music department.
Now the questions... 1. Is FMOD naturally cross-platform with at least Linux and OSX? 2. Is there any chance FMOD plugin would be in Beta 7 (i.e. before 2010)?
Please also consider taking a glance at http://www.un4seen.com/bass.html
One great thing about FMOD: in case the platform/audio HW doesn't support some feature, it can be emulated in software.
At the moment it seems unlikely, but nothing is set in stone...
Doomsday used to use FMOD for sound, but I removed it a long time ago as it isn't GPL compatible. I understand the audio system has been changed since that time however.