Как установить Return to Castle Wolfenstein в линукс Ubuntu.
http://www.linuxspace.org/archives/1245
Return to Castle Wolfenstein в линукс Ubuntu
в ссылке которую вы указали все расписано как сделать. что у вас конкретно не получается?
Может кому и пригодится, для себя под Wine ни как может драйвер 195.36.15 вот и нативный хочю поставить.
для себя под Wine ни как может драйвер 195.36.15 вот и нативный хочю поставить.
можно по-русски?
Как сделать чтобы в Return to Castle Wolfenstein нормально работал звук? Прочитал кучу постов на разных форумах как это сделать, но, к сожалению, в моём случае ничего не помогло (помогло единоразово). Все пути прописал, как было написано, пробовал разные советы, которые так хвалили что помогает, видимо, избранным. Уже подсунул библиотеку libSDL из другой игры и ткнул запускающий скрипт туда мордой, но звука всё равно нет :'(
На Slackware 13.37 проблем не было почему-то *DONT_KNOW*
Wehrmacht_Rover, подробней, как игру запускаешь.
но, к сожалению, в моём случае ничего не помогло (помогло единоразово).
Что именно помогло единоразово?
Навскидку
[console]$ padsp ./игра[/console]
[console]$ aoss ./игра[/console]
[console]$ su
<root-пароль>
# modprobe snd-pcm-oss
# exit
$ ./игра[/console]
Что именно помогло единоразово?
Вот это:
[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*
С игрой идёт вот такой скрипт:
С игрой идёт вот такой скрипт:
#!/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 ругается на это:
/dev/dsp: Bad file descriptor
Sound driver too oldА с драйвером padsp на это:
/dev/dsp: No such file or directory
Could not open /dev/dspА после этого:
modprobe snd-pcm-ossВыхлоп таков:
/dev/dsp: Device or resource busy
Could not open /dev/dspОй, был запущен плеер VLC :[
Теперь без плеера вот это:
/dev/dsp: Input/output error
Could not mmap /dev/dspИ ведь каждый раз новые отговорки выдумывает, сволочь! >:o
Upd: установил pulseaudio, закомментировал строку
# libSDL.so
# You can set this in LIBSDL environment variable
#LIBSDL="/home/wr/games/RTCW/libSDL-1.2.so.0"прописал в скрипте драйвер padsp, и все равно звука нет! ]:->
Как с этим бороться?
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'ом не вводить.
Есть еще gnomesu и beesu, в зависимости какой дистрибутив.kdesu или gksu
Я юзал вот это https://github.com/nullkey/et-sdl-sound