PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Soundprobleme mit einigen Spielen (besonders Quake-basierte)



Hoshpak
06.09.05, 15:05
Hallo,
ich habe hier ein vor ein paar Wochen aufgesetztes Debian Sarge (Stable), leider laufen einige Spiele soundmäßig noch nicht ganz rund, besonders solche, die auf irgendeiner Version der Quake-Engine aufsetzten. Für den Sound benutze ich einen Nforce4 onboard-chip (folgende Module geladen:

snd_intel8x0 30656 0
snd_ac97_codec 70520 1 snd_intel8x0
snd_pcm_oss 46752 0
snd_mixer_oss 17024 1 snd_pcm_oss
snd_pcm 83464 3 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_timer 23684 1 snd_pcm
snd 53252 6 snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixe )
mit Alsa und dmix (arts ist auch aktiviert, aber nicht das Problem).
Als erstes Nexuiz (aufgebohrte Quake1 Engine), der Sound stottert sowohl in der glx als auch in der sdl-Version. (output(sdl-version):
^7Nexuiz Linux 08:23:28 Sep 1 2005
^7Trying to load library... "libz.so.1" - loaded.
^7Compressed files support enabled
^7Added packfile ./data/data20050818-full.pk3 (2554 files)
^7Added packfile ./data/wiki_maps.pk3 (358 files)
^7Console initialized.
^7Playing registered version.
^7Initializing client
^7Trying to load library... "libvorbis.so.0" - loaded.
^7Trying to load library... "libvorbisfile.so.3" - loaded.
^7Ogg Vorbis support enabled
^7couldn't exec autoexec.cfg
^70 demo(s) in loop
^7No demos listed with startdemos
^7Starting video system
^7Video: fullscreen 1024x768x32
^7Linked against SDL version 1.2.8
^7Using SDL library version 1.2.8
^7checking for OpenGL 1.1.0... enabled
^7GL_VENDOR: NVIDIA Corporation
^7GL_RENDERER: GeForce 6600/PCI/SSE2/3DNOW!
^7GL_VERSION: 1.5.3 NVIDIA 71.74
^7GL_EXTENSIONS: GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query 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_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix 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_colorGL_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_depth_bounds_test GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arraysGL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_vertex_array GL_HP_occlusion_test 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_depth_clamp 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_half_float GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil 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_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_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum
^7SDL_EXTENSIONS:
^7Checking OpenGL extensions...
^7checking for glDrawRangeElements... enabled
^7checking for GL_ARB_multitexture... enabled
^7checking for GL_ARB_texture_env_combine... enabled
^7checking for GL_ARB_texture_env_dot3... enabled
^7checking for GL_EXT_texture3D... enabled
^7checking for GL_ARB_texture_cube_map... enabled
^7checking for GL_EXT_compiled_vertex_array... enabled
^7checking for GL_EXT_texture_edge_clamp... enabled
^7checking for GL_EXT_texture_filter_anisotropic... enabled
^7checking for GL_NV_texture_shader... enabled
^7checking for GL_EXT_stencil_two_side... enabled
^7checking for GL_ARB_shader_objects... enabled
^7checking for GL_ARB_shading_language_100... enabled
^7checking for GL_ARB_vertex_shader... enabled
^7checking for GL_ARB_fragment_shader... enabled
^7checking for GL_NV_half_float... enabled
^7OpenGL Backend starting...
^7glDrawRangeElements detected (max vertices 4096, max indices 4096)
^7GLSL shader support detected: texture units = 4 texenv, 16 image, 8 array
^7OpenGL backend started.
^7Trying to load library... "libjpeg.so.62" - loaded.
^7JPEG support enabled
^7Draw_CachePic: failed to load gfx/num_minus
^7Found 2 cdrom drives.
^7Can't get initial CD volume
^7CD Audio Initialized
^7Draw_CachePic: failed to load gfx/m_white
^7Fake CD track 1 playing...
^7Client using port 0
^7Client opened a socket on address local:2
^7Client opened a socket on address 0.0.0.0:2478
^7OpenGL Backend shutting down)

Bei warsow (Quake 2 Engine)ungefähr das selbe, hier funktioniert der sound nur in der arts-version und hier stottert er, wie in Nexuiz. (output(normale version):
Warsow -- Version 0.05
Added pk3 file ./basewsw/base.pk3 (4 files)
Added pk3 file ./basewsw/map_wdm1.pk3 (35 files)
Added pk3 file ./basewsw/map_wdm2.pk3 (45 files)
Added pk3 file ./basewsw/map_wtest1.pk3 (61 files)
Added pk3 file ./basewsw/weapons.pk3 (15 files)
using /home/helmut/.warsow/basewsw/ for writing
execing default.cfg
execing qfconfig.cfg
couldn't exec autoexec.cfg
sv_maxrate is 15000
Added new master server #0 at 66.169.205.12:27950
Added new master server #1 at 69.59.212.88:27950
Console initialized.

------- sound initialization -------
/dev/dsp: Input/output error
SNDDMA_Init: Could not mmap /dev/dsp.

----- R_Init -----
ref_gl version: GL 0.01
Using libGL.so.1 for OpenGL...Display initialization
..XFree86-VidMode Extension Version 2.2
..Get rbga, double-buffered, 24bits depth and 8bit stencil
1024x768 -> 1024x768: 0
1024x768 -> 1024x768: 0
1024x768 -> 1024x768: 0
1024x768 -> 1024x768: 0
1024x768 -> 1024x768: 0
1024x768 selected

GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce 6600/PCI/SSE2/3DNOW!
GL_VERSION: 1.5.3 NVIDIA 71.74
GL_EXTENSIONS: GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query 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_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix 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_depth_bounds_test GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_vertex_array GL_HP_occlusion_test 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_depth_clamp 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_half_float GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil 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_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_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum
GL_MAX_TEXTURE_SIZE: 4096
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_CUBE_MAP_TEXTURE_SIZE: 4096
GL_MAX_3D_TEXTURE_SIZE: 512

mode: 6, fullscreen
CDS: enabled
picmip: 0
texturemode: GL_LINEAR_MIPMAP_LINEAR
swap interval: disabled
compiled vertex array: enabled
multitexture: enabled
texture cube map: enabled
texture3D enabled
texenv add: enabled
texenv combine: enabled
texenv dot3: enabled
NVtexenv combine4: enabled
texture edge clamp: enabled
anisotropic filtering: disabled
compressed textures: disabled
draw range elements: enabled
vertex buffer object: disabled
BGRA byte order: enabled
----- finished R_Init -----

Initializing Shaders:
...loading 'scripts/celloutlines.shader'
...loading 'scripts/city.shader'
...loading 'scripts/city.shader'
...loading 'scripts/common.shader'
...loading 'scripts/electrobeam.shader'
...loading 'scripts/gfx.shader'
...loading 'scripts/hud.shader'
...loading 'scripts/liquids.shader'
...loading 'scripts/models.shader'
...loading 'scripts/quake2.shader'
...loading 'scripts/ui.shader'
...loading 'scripts/viciious.shader'
...loading 'scripts/wdm2.shader'
...loading 'scripts/wtest1.shader'
...loading 'scripts/zzcubemapwater.shader'
--------------------------------------

LoadLibrary (./basewsw/ui_i386.so):((null))
Unknown command "d1"
====== Warsow Initialized ======
helmut@debian:/media/Multimedia/Spiele/warsow$ )

Als drittes Quake-Spiel bleibt dann noch ufomax(Quake 2 Engine), hier kommt gar kein Sound. (output:


execing default.cfg
execing config.cfg
execing keys.cfg
Console initialized.

------- sound initialization -------
/dev/dsp: Broken pipe
Could not toggle.
------- Loading ref_glx.so -------
LoadLibrary("ref_glx.so"): can't open /etc/quake2.conf
LoadLibrary("./ref_glx.so")
ref_gl version: GL 0.10
Initializing OpenGL display
...setting fullscreen mode 6: 1024 768
Using XFree86-VidModeExtension Version 2.2
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce 6600/PCI/SSE2/3DNOW!
GL_VERSION: 1.5.3 NVIDIA 71.74
...allowing CDS
...enabling GL_EXT_compiled_vertex_array
...using GL_EXT_point_parameters
...using GL_ARB_multitexture
...using GL_EXT_texture_env_combine
...GL_SGIS_multitexture not found
------------------------------------
CD Audio Initialized
Shared Client/Server Info loaded
Team 'current' loaded.
====== UFO Initialized ======

recursive shutdown

Letztlich noch glest, hier funktioniert das Spiel nur als root, als User erhalte ich folgende Fehlermeldung:

OpenAL Vendor: J. Valenzuela
OpenAL Version: 0.0.7
OpenAL Renderer: Software
OpenAl Extensions: Software
open /dev/[sound/]dsp: Device or resource busy
Exception: Couldn't open audio device.

Die meisten anderen spiele laufen aber wunderbar (wesnoth, Simcity 3000, civ:call to power, ET, Planeshift), leider habe ich keine Ahnung, woran es liegen könnte.

stefan-tiger
06.09.05, 15:33
Wenn der Sound mit artd stottert hast du ne zu langsame CPU weil artsd viel schluckt.

Wenn du ohne artsd keinen Sound bekommstm, dann gibts da nen ALSA "Trick" riegendwas mit "direct" ins /proc zu schreiben, dann geht das.

Ich hab mich noch nicht drum gekümmert, warum und wozu das genau ist und warum die EInstellung nicht gespeichter wird.

Du kannst auch mal alternativ die nForce Treiber von nVidia probieren. Die sind aber nicht ALSA sondern OSS, haben aber Hardwaremixing.

Ich hatte mit denen bei Spielen aber einige Problemchen (SuFu), so daß ich jetzt auch den ALSA-Treiber benutz.

Probier dochmal: Supertux, Tucracer, lbreakoput2, Doom3-Demo, ET udn Americas Army. Die laufen bei mir gut. Die spiele die du aufgeführt hast benutze ich nicht.

Gruß

Fatty
06.09.05, 16:11
Ich verwende ebenfalls das dmix-Plugin und habe damit eigentlich keine Probleme. Allerdings habe ich Nexuiz und Warsow noch nie gespielt.

Für Glest habe ich einen Tipp:
Glest verwendet OpenAL und bis vor kurzem hatte ich auch noch Probleme mit OpenAL + dmix. Allerdings habe ich in der Mailinglist von OpenAL einen Patch gefunden, der dieses Problem behebt.
Also OpenAL saugen (am Besten CVS), den Patch von [1] einspielen, kompilieren und installieren. Danach sollte das wieder problemlos klappen.


Die anderen Spiele scheinen Probleme beim Zugriff auf das Sounddevice zu haben. Einmal weil es belegt ist, das andere mal weil der DMA-Modus nicht zu funktionieren scheint.
Ersteres sollte sich lösen lassen, indem du alle anderen Programme, die auf das Device zugreifen schließt oder du stellst den SDL_sound so ein, dass statt OSS Alsa verwendet wird (soweit ich weiß heißt die Umgebungsvariable $AUDIODEVICE).
Letzteres liegt wohl an nicht 100%ig richtig konfiguriertem dmix-Plugin. Zum Vergelich mal meine ~/.asoundrc:

pcm.!default {
type plug
slave.pcm "duplex"
}

pcm.intel8x0 {
type hw
card 0
mmap_emulation true
}

pcm.duplex {
type asym
playback.pcm "dmixer"
capture.pcm "mixin"
}

pcm.dsp {
type plug
slave.pcm "duplex"
}

pcm.dmixer {
type dmix
ipc_key 1024
# ipc_key_add_uid yes
slave {
pcm "intel8x0"
periods 0
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings {
0 0
1 1
}
}

pcm.mixin {
type dsnoop
ipc_key 2048
# ipc_key_add_uid yes
slave {
pcm "intel8x0"
period_size 1024
buffer_size 4096
rate 44100
periods 0
period_time 0
}
bindings {
0 0
0 1
}
}

ctl.dmixer {
type hw
card 0
}

ctl.mixin {
type hw
card 0
}

ctl.duplex {
type hw
card 0
}

ctl.mixer0 {
type hw
card 0
}



[1] http://opensource.creative.com/pipermail/openal-devel/2005-June/000942.html

Hoshpak
06.09.05, 17:32
Erstmal Danke für eure Hilfe, das Problem lag tatsächlich an dmix, meine .asoundrc sah so aus:

pcm.!default {

type plug
slave.pcm "dmixer"

} pcm.dmixer {

type dmix
ipc_key 1025
slave {
pcm "hw:0,0"
}
bindings {
0 0
1 1
}

}
das hat zwar funktioniert, aber offensichtlich nur für bestimmte Anwendungen, die oben genannte hat aber leider auch nicht funktioniert, jetzt habe ich mal nach dem Modul und dmix gesuch und folgendes gefunden:

# this is IBM T40 specific, which
# uses the snd_intel8x0, and may
# not work on other laptops

pcm.amix {
type dmix
ipc_key 50557
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 8192
}
bindings {
0 0
1 1
}
}

# route ALSA software through pcm.amix
pcm.!default {
type plug
slave.pcm "amix"
}
und das funktioniert:), alles bis auf Glest läuft jetzt wieder und da werde ich mir mal den Patch anschauen, das einzige, was mich daran wundert, ist ,d ass Planeshift auch auf openal aufsetzt und ohne Probleme funktioniert.

Fatty
06.09.05, 19:59
Hast du OpenAL eigentlich so eingestellt, damit es Alsa benutzt? Weil standardmäßig greift OpenAL unter Linux auf OSS zu.

Hoshpak
06.09.05, 21:45
Nein, direkt über ALSA funktioniert es leider auch nicht, aber ich habe das ganze jetzt mal über sdl laufen lassen und jetzt funktioniert Glest mit dmix ohne Probleme.

EDIT:dafür lief Simcity nicht mehr, jetzt habe ich openal wieder auf ALSA gesetzt und lasse Glest über arts laufen.