
Да друзья, решил упомянуть про установку в Ubuntu Linux одной из самых популярных игр последнего времени - Diablo III. Так что если вы устанавливали Windows для данной игры - удаляйте, ибо и под Linux игра работает вполне стабильно.
- Рекомендуемая версия Wine: 1.5.5
- Статус игры: Устанавливается, запускается и вполне сносно работает, но с некоторыми оговорками
- Страница игры на AppDB: appdb.winehq.org
Итак, для работы игры необходим vcrun2008, ставится из winetricks. DirectX не нужен, игра отлично работает с OpenGL.
Так-же на чистом Wine не работает установка (решается патчами, ниже) и смена настроек игры. Но вы всё-же можете запустить уже установленную игру следующей командой:
1 |
wine DiabloIII.exe -launch |
Для полноценной работы установки игры и настроек, желательны следующие патчи:
Wine 1.5.5:
- AcceptEx 1 из 4: source.winehq.org/patches/data/86603
- AcceptEx 2 из 4: source.winehq.org/patches/data/86604
- AcceptEx 3 из 4: source.winehq.org/patches/data/86605
- AcceptEx 4 из 4: source.winehq.org/patches/data/86606
DepthStencil: bugs.winehq.org/attachment.cgi?id=39565
Wine 1.5.4 (old):
- AcceptEx 1 из 3: source.winehq.org/patches/data/86263
- AcceptEx 2 из 3: source.winehq.org/patches/data/86264
- AcceptEx 3 из 3: source.winehq.org/patches/data/86265
DepthStencil: bugs.winehq.org/attachment.cgi?id=39565
После применения патчей AcceptEx необходимо выполнить следующую команду из директории с исходниками:
1 |
./tools/make_requests |
Так-же для пользователей Ubuntu существует скрипт, осуществляющий автоматическую сборку Wine с необходимыми патчами:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
#!/bin/sh WINE_VERSION="wine1.5" BASE_DIR="$HOME/Downloads/$WINE_VERSION" RELEASE_CODENAME=$(lsb_release -cs) COMPONENTS="main restricted universe multiverse" BUILD_DEPENDENCIES=" build-essential wget fakeroot pbuilder debootstrap autotools-dev bison debhelper docbook-to-man docbook-utils docbook-xsl flex fontforge gcc-4.5 gettext libasound2-dev libcapi20-dev libcups2-dev libdbus-1-dev libfontconfig1-dev libfreetype6-dev libgif-dev libgl1-mesa-dev libglu1-mesa-dev libgnutls-dev libgphoto2-2-dev libgsm1-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libjpeg-dev liblcms1-dev libldap2-dev libmpg123-dev libncurses5-dev libopenal-dev libpng12-dev libpulse-dev libsane-dev libssl-dev libtiff4-dev libv4l-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxml2-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxxf86vm-dev linux-kernel-headers opencl-headers oss4-dev prelink unixodbc-dev x11proto-xinerama-dev " # Make sure the DEBFULLNAME and DEBEMAIL environment variables are set. if [ ! -n "$DEBFULLNAME" ] || [ ! -n "$DEBEMAIL" ]; then printf "DEBFULLNAME and DEBEMAIL environment variables not found. Add them to your .bashrc file. " printf "export DEBFULLNAME="Name" " printf "export DEBEMAIL="Email" " exit 1 fi # Make sure there is a gpg key available. if [ ! -n "$(gpg --list-secret-keys)" ]; then printf "GPG key not found! To generate a key run: " printf "gpg --gen-key " exit 1 fi # Remove old build files. rm -Rf $BASE_DIR/build/wine* # Setup the directory structure. mkdir -p $BASE_DIR/pbuilder mkdir -p $BASE_DIR/build # Update the list of packages. printf "Updating packages... " sudo apt-get update # Install build prerequisites. printf "Installing build dependencies... " sudo apt-get -y install $BUILD_DEPENDENCIES libmpg123-0:i386 libasound2-plugins:i386 if [ $? -ne 0 ]; then printf "Error downloading the build dependencies. " exit 1 fi # Make sure the i386 pbuilder environment exists and is up to date. if [ -e $BASE_DIR/pbuilder/$RELEASE_CODENAME-i386.base.tgz ]; then # Update the i386 pbuilder environment. printf "Updating the i386 pbuilder environment... " sudo pbuilder --update --basetgz "$BASE_DIR/pbuilder/$RELEASE_CODENAME-i386.base.tgz" if [ $? -ne 0 ]; then printf "Error updating the pbuilder environment. " exit 1 fi else # Create the i386 pbuilder environment with the necessary build dependencies. printf "Creating a new i386 pbuilder environment... " sudo pbuilder --create --basetgz "$BASE_DIR/pbuilder/$RELEASE_CODENAME-i386.base.tgz" --architecture i386 --distribution $RELEASE_CODENAME --components "$COMPONENTS" --extrapackages "$BUILD_DEPENDENCIES" --debootstrapopts --variant=buildd if [ $? -ne 0 ]; then printf "Error creating the i386 pbuilder environment. " exit 1 fi fi # Get the source code for wine. printf "Downloading the source code for wine... " cd $BASE_DIR/build apt-get -y source $WINE_VERSION if [ $? -ne 0 ]; then printf "Error downloading the source code for wine. " exit 1 fi cd $WINE_VERSION-* # Figure out what the package version is. PACKAGE_VERSION=$(head -n1 debian/changelog | perl -ne `if ($_ =~ /^`$WINE_VERSION`s(([w.-~+]+))/) { print $1; }`) # Add patch information to the changelog. printf "$WINE_VERSION ($PACKAGE_VERSION+patches) $RELEASE_CODENAME; urgency=low " > $BASE_DIR/build/changelog # Download and add each patch to the build system. printf "Downloading and adding patches to the build system... " # KUSER_SHARED_DATA patch to fix issues with SW:TOR. wget -qO debian/patches/KUSER_SHARED_DATA http://bugs.winehq.org/attachment.cgi?id=39482 printf "KUSER_SHARED_DATA " >> debian/patches/series printf " * KUSER_SHARED_DATA patch " >> $BASE_DIR/build/changelog printf " - Fixes login issues with SW:TOR. " >> $BASE_DIR/build/changelog # AcceptEx patches to fix issues with Blizzard launchers. wget -qO debian/patches/AcceptEx_1of3 http://source.winehq.org/patches/data/86263 wget -qO debian/patches/AcceptEx_2of3 http://source.winehq.org/patches/data/86264 wget -qO debian/patches/AcceptEx_3of3 http://source.winehq.org/patches/data/86265 printf "AcceptEx_1of3 " >> debian/patches/series printf "AcceptEx_2of3 " >> debian/patches/series printf "AcceptEx_3of3 " >> debian/patches/series printf " * AcceptEx patches " >> $BASE_DIR/build/changelog printf " - Fixes launcher issues in Diablo III and World of Warcraft. " >> $BASE_DIR/build/changelog # DepthStencil patch to fix lockups in Diablo III when switching video modes. wget -qO debian/patches/DepthStencil http://bugs.winehq.org/attachment.cgi?id=39565 printf "DepthStencil " >> debian/patches/series printf " * DepthStencil patch " >> $BASE_DIR/build/changelog printf " - Fixes game lockups in Diablo III when switching video modes. " >> $BASE_DIR/build/changelog # Add maintainer information to the changelog. printf " -- $DEBFULLNAME $(date -R) " >> $BASE_DIR/build/changelog cat debian/changelog >> $BASE_DIR/build/changelog cp $BASE_DIR/build/changelog debian/changelog # Build the 64 bit packages. printf "Building the 64 bit packages... " debuild if [ $? -ne 0 ]; then printf "Error building the 64 bit packages. " exit 1 fi # Move the 64 bit packages into the base directory. mv $BASE_DIR/build/$WINE_VERSION*.deb $BASE_DIR # Build the 32 bit packages. printf "Building the 32 bit packages... " cd .. sudo pbuilder --build --basetgz "$BASE_DIR/pbuilder/$RELEASE_CODENAME-i386.base.tgz" --buildresult "$BASE_DIR" $WINE_VERSION\_$PACKAGE_VERSION+patches.dsc if [ $? -ne 0 ]; then printf "Error building the 32 bit packages. " exit 1 fi # Remove 32 bit packages that conflict with 64 bit packages. rm $BASE_DIR/wine_$PACKAGE_VERSION+patches_i386.deb rm $BASE_DIR/$WINE_VERSION-dev_$PACKAGE_VERSION+patches_i386.deb # Install the packages. printf "Installing packages... " sudo dpkg -i $BASE_DIR/$WINE_VERSION*.deb # All done. exit 0 |
И ещё есть пакет на PPA (на данный момент версия для Wine 2.5.3).
Несколько частых проблем и их решения:
- Q: Я использую патченную версию Wine, но установка всё-равно застревает на 0%
- A: Попробуйте выставить эмуляцию "WinXP" в настройках. Хотя говорят что игра показывает более хорошие результаты в режиме совместимости с "Windows 7" и "Vista"
- Q: Я использую патченную версию Wine, но при установке с DVD я получаю ошибку о том что установщик не может найти файлы
- A: Смонтируйте DVD с опцией "-o unhide", должно помочь
- Q: При попытке подключения я получаю ошибку "3007"
- A: Если вы используете последнюю версию Ubuntu (или другого дистрибутива имеющего повышенную безопасность) то попробуйте выполнить данную команду перед запуском игры:
1echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- Q: Во время игры появляются странные артефакты красного цвета
- A: Отключите "Анизотропную фильтрацию" в панели управления видеодрайвером
- Q: Игра вылетает в произвольных местах карты
- A: Такое проявляется на старых видеокартах. Обновление драйвера видеокарты должно помочь, хотя оно в любом случае не помешает
- Q: После запуска игры возникает "Непредвиденная ошибка"
- A: Скорее всего это связанно с использованием встроенных библиотек vcrun2008. Установите отдельный пакет VC++ 2008из winetricks следующей командой:
1winetricks vcrun2008
- Q: Я использую Ubuntu с рабочим окружением Unity. При запуске игры в полноэкранном режиме - панель и бар остаются видны
- A: Это несовместимость Compiz с многими полноэкранными приложениями. Скорее всего вам поможет переключение на Unity 2D или включение "Legacy Fullscreen" в опциях Compiz
Думаю многим пригодится данная информация.