LinuxForum.Fans
Тема

Return to Castle Wolfenstein в линукс Ubuntu

Автор: bolivar4 10 сообщений 9640 просмотров
#86290

в ссылке которую вы указали все расписано как сделать. что у вас конкретно не получается?

#86295

Может кому и пригодится, для себя под Wine ни как может драйвер 195.36.15 вот и нативный хочю поставить.

#86315
bolivar4 написал:
для себя под Wine ни как может драйвер 195.36.15 вот и нативный хочю поставить.

можно по-русски?

#363550

Как сделать чтобы в Return to Castle Wolfenstein нормально работал звук? Прочитал кучу постов на разных форумах как это сделать, но, к сожалению, в моём случае ничего не помогло (помогло единоразово). Все пути прописал, как было написано, пробовал разные советы, которые так хвалили что помогает, видимо, избранным. Уже подсунул библиотеку libSDL из другой игры и ткнул запускающий скрипт туда мордой, но звука всё равно нет :'(
На Slackware 13.37 проблем не было почему-то *DONT_KNOW*

#363565

Wehrmacht_Rover, подробней, как игру запускаешь.

"Wehrmacht_Rover" написал:
но, к сожалению, в моём случае ничего не помогло (помогло единоразово).

Что именно помогло единоразово?

Навскидку
[console]$ padsp ./игра[/console]
[console]$ aoss ./игра[/console]

[console]$ su
<root-пароль>
# modprobe snd-pcm-oss
# exit
$ ./игра[/console]

#363572
"xxblx" написал:
Что именно помогло единоразово?

Вот это:
[console]echo "wolfsp.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "wolfsp.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss[/console]
И делается оно, естественно, от имени рута, следовательно такой костыль мне нафиг не сдался. *TIRED*
С игрой идёт вот такой скрипт:

С игрой идёт вот такой скрипт:
text
#!/bin/bash
# et-sdl-sound - SDL sound system for Enemy Territory, RTCW and Q3
# Copyright (C) 2007-2008  Pyry Haulos
# Please fill in following variables or let this script
# guess correct values.
# You can set this in GAME_PATH environment variable

GAME_PATH="/home/wr/games/RTCW"

# libSDL.so # You can set this in LIBSDL environment variable LIBSDL="/home/wr/games/RTCW/libSDL-1.2.so.0" # Temporary directory

TMP_DIR="/tmp"

# Use 'find' if can't locate the game or libSDL otherwise

USE_FIND="yes"

# SDL audio driver

SDL_AUDIODRIVER="aoss"

# Just extract et-sdl-sound.so

ONLY_EXTRACT="no"

# Do not touch anything below this line! SCRIPT_NAME='wolfsp-sdl-sound' GAME_BIN='wolfsp.x86' GAME_DIR='RTCW' ET_SDL_SOUND_LIB=''\ '\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03'\ ...Дальше идёт куча вот таких вот абракадабр... TRIED_LIBSDL="" # for debugging info

# info "message"

info () { echo -e "\033[34m[${SCRIPT_NAME}] \033[32minfo\033[0m : $1" }

# error "message"

error () { echo -e "\033[34m[${SCRIPT_NAME}] \033[31merror\033[0m : $1" }

# eend "message"

eend () { error "$1" exit 1 }

# testgamepath "path"

testgamepath () { # TODO test some .pk3 files? if [ -x "$1/$GAME_BIN" -a "$GAME_PATH" = "" ]; then info "$GAME_BIN is installed to $1" GAME_PATH=$1 fi }

# testlibsdl "path"

testlibsdl () { TRIED_LIBSDL="$TRIED_LIBSDL $1" READLINK=`readlink -f "$1"` if [ "$LIBSDL" = "" -a "$READLINK" != "$1" ]; then #info "$1 is a symbolic link to $READLINK" testlibsdl "$READLINK" fi if [ "$LIBSDL" = "" -a -f "$1" ]; then if [ "`file -b "$1" | grep "ELF 32-bit LSB shared object"`" != "" ]; then info "32-bit libSDL.so is installed to $1" LIBSDL="$1" fi fi }

if [ "$ONLY_EXTRACT" = "yes" ]; then echo -ne "$ET_SDL_SOUND_LIB" > "./et-sdl-sound.so" || eend "can't write ./et-sdl-sound.so" info "library is written to ./et-sdl-sound.so" exit 0 fi

[ "$GAME_PATH" = "" ] && testgamepath "/usr/local/games/$GAME_DIR" [ "$GAME_PATH" = "" ] && testgamepath "/opt/$GAME_DIR" [ "$GAME_PATH" = "" ] && testgamepath "/usr/games/$GAME_DIR" [ "$GAME_PATH" = "" ] && testgamepath "~/$GAME_DIR" if [ "$GAME_PATH" = "" ]; then LOCATE_GAME=`locate "$GAME_BIN" 2> /dev/null` for i in $LOCATE_GAME; do i=`dirname "$i"` testgamepath $i [ "$GAME_PATH" != "" ] && break done fi if [ "$GAME_PATH" = "" -a "$USE_FIND" = "yes" ]; then FIND_GAME=`find /opt/ /usr/ -type f -name "$GAME_BIN"` for i in $FIND_GAME; do i=`dirname "$i"` testgamepath $i [ "$GAME_PATH" != "" ] && break done fi [ "$GAME_PATH" = "" ] && eend "can't locate $GAME_BIN"

[ "$LIBSDL" = "" ] && testlibsdl "/usr/lib/libSDL.so" [ "$LIBSDL" = "" ] && testlibsdl "/usr/lib/libSDL-1.2.so.0" [ "$LIBSDL" = "" ] && testlibsdl "/usr/lib32/libSDL.so" [ "$LIBSDL" = "" ] && testlibsdl "/usr/lib32/libSDL-1.2.so.0" if [ "$LIBSDL" = "" ]; then LOCATE_LIBSDL=`locate -r libSDL[^_]*so[^_]* 2> /dev/null` for i in $LOCATE_LIBSDL; do testlibsdl $i [ "$LIBSDL" != "" ] && break done fi if [ "$LIBSDL" = "" -a "$USE_FIND" = "yes" ]; then FIND_LIBSDL=`find /usr/lib/ /usr/lib32/ -type f -name libSDL[^_]*so[^_]*` for i in $FIND_LIBSDL; do testlibsdl $i [ "$LIBSDL" != "" ] && break done fi if [ "$LIBSDL" = "" ]; then error "can't locate libSDL.so" info "tried following files" for i in $TRIED_LIBSDL; do FILE_INFO=`file -b "$i"` info "$i" info " $FILE_INFO" done exit 1 fi

echo -ne "$ET_SDL_SOUND_LIB" > "$TMP_DIR/et-sdl-sound.so" || eend "can't write $TMP_DIR/et-sdl-sound.so" info "library is written to $TMP_DIR/et-sdl-sound.so"

info "launching the game..." cd "$GAME_PATH"

export ETSDL_SDL_LIB="$LIBSDL" export SDL_AUDIODRIVER="$SDL_AUDIODRIVER" LD_PRELOAD="${LD_PRELOAD}:${TMP_DIR}/et-sdl-sound.so" ./$GAME_BIN $*

rm "$TMP_DIR/et-sdl-sound.so" || error "can't remove $TMP_DIR/et-sdl-sound.so"

info "done"

Выхлоп терминала:
[console]------- sound initialization -------
Cmd_AddCommand: play already defined
Cmd_AddCommand: music already defined
Cmd_AddCommand: queuemusic already defined
Cmd_AddCommand: streamingsound already defined
Cmd_AddCommand: s_list already defined
Cmd_AddCommand: s_info already defined
Cmd_AddCommand: s_stop already defined
/dev/dsp: Bad file descriptor
Sound driver too old
------------------------------------[/console]

С драйвером aoss ругается на это:

text
/dev/dsp: Bad file descriptor
Sound driver too old

А с драйвером padsp на это:

text
/dev/dsp: No such file or directory
Could not open /dev/dsp

А после этого:

text
modprobe snd-pcm-oss

Выхлоп таков:

text
/dev/dsp: Device or resource busy
Could not open /dev/dsp

Ой, был запущен плеер VLC :[
Теперь без плеера вот это:

text
/dev/dsp: Input/output error
Could not mmap /dev/dsp

И ведь каждый раз новые отговорки выдумывает, сволочь! >:o

Upd: установил pulseaudio, закомментировал строку

text
# libSDL.so
# You can set this in LIBSDL environment variable
#LIBSDL="/home/wr/games/RTCW/libSDL-1.2.so.0"

прописал в скрипте драйвер padsp, и все равно звука нет! ]:->
Как с этим бороться?

#363723

Wehrmacht_Rover, погуглил я по во вопросу немного, похоже что на современных системах кроме

"Wehrmacht_Rover" написал:
И делается оно, естественно, от имени рута, следовательно такой костыль мне нафиг не сдался.

вариантов-то и нет больше.

Можно какой-нибудь kdesu или gksu приспособить для
[console]echo "wolfsp.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "wolfsp.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss[/console]
Чтобы каждый раз вручную под root'ом не вводить.

#363726

"xxblx" написал:
kdesu или gksu
Есть еще gnomesu и beesu, в зависимости какой дистрибутив.
Войдите или зарегистрируйтесь, чтобы ответить.