Brak dzwięku w Enemy Territory oraz Quake 3 - linux

Sam miałem sporo problemów z dzwiękiem w ET i w internecie znalzałem dużo na temat uruchomienia dzwięku w ET ale tylko sposób przedstawiony poniżej mi pomógł, powinno działać to też w Quake 3 ale tego nie testowałem … mój system to linux Kubuntu

  1. Otwieramy konsole i wpisujemy w niej komedne :

    sudo /etc/init.d/bootmisc.sh stop

2.Później musimy otworzyć i edytować plik bootmisc.sh w kubuntu komenda wygląda tak :

sudo nano /etc/init.d/bootmisc.sh

(w ubuntu zamiast nano wpisujemy gedit, lub inny program textowy) 3. Wklejamy poniższy text

echo "et.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss

echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss

echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
  1. Zapisujemy (CTRL+O) i wychodzimy z pliku (CTRL+X) 5. Wpisujemy komende

    sudo /etc/init.d/bootmisc.sh start

  2. i uruchamiamy ET lub Quake z dodatkowym parametrem :

    +set_initsound 1

np: dla ET

/home/moher/et +set_initsound 1

dla Quake 3

/usr/local/games/quake3/quake3 +set_initsound 1

i już możemy marnować czas grając w ET lub Quake 3 :slight_smile:

UWAGI DODATKOWE

Przypominam że porada jest sprawdzona na kubuntu 6.06 i dla gry Enemy Territory jednak powinna działać na innych systemach oraz dla gry Quake 3

Mimo iż zrobiliśmy wszystko dobrze dzwięk może sie nie uruchomić a przyczoną jest wygenerowany kilka/kilkanaście sekund przedtem jakiś dzwięk wtedy dsp jest zajęty, można wyłączyć dzwięki systemowe lub poprostu poczekać kilkanaście sekund, ja dla pewności restartuje KDE poleceniem CTRL+ALT+BACKSPACE uruchamiam konsole czekam chwile potem wklejam komende :slight_smile:

Nie wiem czy będzie to działać z innymi grami, ale kiedy w Slackware miałem problem z dźwiekiem w Quake4, odpalałem go z dodatkowymi parametrami set +set s_driver oss +set s_numberOfSpeakers 2.

Oczywiście, żeby nie wpisywać tego za każdym razem w konsoli, po prostu stworzyłem sobie dowiązanie (skrót po windowsowemu) na pulpicie i po nazwie programu własnie to co jest wyżej dopisałem.

u mnie po wpisaniu (mam ubuntu)

sudo gedit /etc/init.d/bootmisc.sh

wyświetla mi sie zawartość tego pliku

#!/bin/sh

### BEGIN INIT INFO

# Provides: bootmisc

# Required-Start: $local_fs hostname

# Required-Stop: $local_fs

# Default-Start: S

# Default-Stop:

# Short-Description: Miscellaneous things to be done during bootup.

# Description:

### END INIT INFO

#

# Version:	@(#)bootmisc.sh 2.85-17 04-Jun-2004 miquels@cistron.nl

#


[-z "$DELAYLOGIN"] && DELAYLOGIN=yes

[-z "$EDITMOTD"] && EDITMOTD=yes

[-f /etc/default/rcS] && . /etc/default/rcS


do_start () {

	#

	#	Put a nologin file in /etc to prevent people from logging in

	#	before system startup is complete.

	#

	if ["$DELAYLOGIN" = yes]

	then

		echo "System bootup in progress - please wait" > /etc/nologin

	fi


	#

	#	Create /var/run/utmp so we can login.

	#

	: > /var/run/utmp

	if grep -q ^utmp: /etc/group

	then

		chmod 664 /var/run/utmp

		chgrp utmp /var/run/utmp

	fi


	#

	#	Set pseudo-terminal access permissions.

	#

	if [! -e /dev/.devfsd] && [-c /dev/ttyp0]

	then

		chmod -f 666 /dev/tty[p-za-e][0-9a-f]

		chown -f root:tty /dev/tty[p-za-e][0-9a-f]

	fi


	#

	#	Update /etc/motd. If it's a symbolic link, do the actual work

	#	in the directory the link points to.

	#

	if ["$EDITMOTD" != no]

	then

		MOTD="`readlink -f /etc/motd || :`"

		if ["$MOTD" != ""]

		then

			uname -a > $MOTD.tmp

			sed 1d $MOTD >> $MOTD.tmp

			mv $MOTD.tmp $MOTD

		fi

	fi


	#

	#	Save kernel messages in /var/log/dmesg

	#

	if [-x /bin/dmesg] || [-x /sbin/dmesg]

	then

		dmesg -s 524288 > /var/log/dmesg

	elif [-c /dev/klog]

	then

		dd if=/dev/klog of=/var/log/dmesg &

		dmesg_pid=$!

		sleep 1

		kill $dmesg_pid

	fi


	#

	#	Save udev log in /var/log/udev

	#

	if [-e /dev/.udev.log]

	then

		mv -f /dev/.udev.log /var/log/udev

	fi



	#

	#	Remove ".clean" files.

	#

	rm -f /tmp/.clean

}


case "$1" in

    start)

        do_start

        ;;

    restart|reload|force-reload)

        echo "Error: argument '$1' not supported" >&2

        exit 3

        ;;

    stop)

        ;;

    *)

        echo "Usage: $0 start|stop" >&2

        exit 3

        ;;

esac


: exit 0

ale gdzie wkleić te 3 linijki? w które miejsce dokładnie?

Ja wpisałem na samym końcu i działa.