Difference between revisions of "Linux/ru"

From Kerbal Space Program Wiki
Jump to: navigation, search
(0.24 update)
 
Line 29: Line 29:
 
<code>cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"</code>
 
<code>cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"</code>
  
Команды для исправления для версии KSP 0.23.5:
+
Команды для исправления для версии KSP 0.24:
  
 +
{| class="wikitable"
 +
|-
 +
! Версия !! Команда
 +
|-
 +
| 0.24 — 0.24.2||
 +
<code>echo "0099f587: 00" | xxd -r - KSP.x86_64<br>
 +
echo "0099f58c: 00" | xxd -r - KSP.x86_64</code>
 +
|-
 +
| 0.23.5 ||
 
<code>echo "090f377: 00" | xxd -r - KSP.x86_64<br>
 
<code>echo "090f377: 00" | xxd -r - KSP.x86_64<br>
 
echo "090f37c: 00" | xxd -r - KSP.x86_64</code>
 
echo "090f37c: 00" | xxd -r - KSP.x86_64</code>
 
+
|-
Команды для исправления для версии KSP 0.23:
+
| 0.23 ||
 
 
 
<code>echo "838077: 00" | xxd -r - KSP.x86_64<br>
 
<code>echo "838077: 00" | xxd -r - KSP.x86_64<br>
 
echo "83807c: 00" | xxd -r - KSP.x86_64</code>
 
echo "83807c: 00" | xxd -r - KSP.x86_64</code>
 +
|}
 +
 +
====Универсальный патчер от [https://github.com/Voidi/proprietary_installer/blob/master/ksp_installer Voidi]====
 +
<syntaxhighlight enclose="div" lang="text">
 +
#!/bin/sh
 +
position1=$(echo "obase=16; $(perl -n0777e 'print pos()-1,"\n" while /\x01\x00\x00\x00\xB8\x01\x00\x00\x00\xC3\x41\x56\x41\x55\x49/g' "./KSP.x86_64") - E" | bc)
 +
if [ $position1 != "-E" ]
 +
then
 +
echo "Patching Segfault out of the Rockets ..."
 +
cp -n "./KSP.x86_64" "./KSP.x86_64.unpatched"
 +
position2=$(echo "obase=16;ibase=16; $position1 + 5" | bc)
 +
echo "$position1: 00" | xxd -r - "./KSP.x86_64"
 +
echo "$position2: 00" | xxd -r - "./KSP.x86_64"
 +
else
 +
echo "This seems to be not a vanilla KSP executable"
 +
fi</syntaxhighlight>
  
 
Теперь можно установить хоть все моды, лишь бы аппаратной памяти хватило.
 
Теперь можно установить хоть все моды, лишь бы аппаратной памяти хватило.

Latest revision as of 07:07, 3 August 2014

Этот раздел содержит информацию об запуске Kerbal Space Program под операционными системами GNU/Linux.

Запуск в не латинской локали

Суть проблемы

KSP не может нормально работать с русской локалью, основная проблема в том, что англичане записывают десятичные дроби с точкой 3.1415, а русские - с запятой 3,1415. Из-за бага в движке Unity игра пишет числа в одном виде и пытается читать в другом.

Решение

Командная строка в Steam

Запускать игру в латинской локали. В командной строке:

LC_ALL=C ./KSP.x86

Всё, что применимо в командной строке (она-же "консоль") может быть вписано в свойства значка на рабочем столе, пункта меню и в файлы .desktop так что вам не придётся печатать буквы в страшной чёрной консоли просто чтобы поиграть в игру. Для запуска через Steam требуется слегка другой способ:

LC_ALL=C %command%

См иллюстрацию.

Моды

Суть проблемы

Нет проблем, моды устанавливаются и работают на всех ОС одинаково. Не обращайте внимание на то, что файлы модов имеют расширение .dll.

64-битная версия

Суть проблемы

KSP с модами требует много памяти, но 32хбитный процесс не может работать более, чем с двумя ГБ памяти. Пользователям windows приходится удалять моды, а для Линукс существует 64хбитная версия игры, не имеющая ограничений по памяти. В ней, однако имеется баг, рушащий игру при запуске.

Решение

Разумеется, у вас должен быть 64битный процессор и 64хбитное ядро. Команда uname --hardware-platform должна давать ответ x86_64.

В папке с игрой должен быть файл KSP.x86_64 Его необходимо исправить. Откройте консоль в папке с игрой:

cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"

Команды для исправления для версии KSP 0.24:

Версия Команда
0.24 — 0.24.2

echo "0099f587: 00" | xxd -r - KSP.x86_64
echo "0099f58c: 00" | xxd -r - KSP.x86_64

0.23.5

echo "090f377: 00" | xxd -r - KSP.x86_64
echo "090f37c: 00" | xxd -r - KSP.x86_64

0.23

echo "838077: 00" | xxd -r - KSP.x86_64
echo "83807c: 00" | xxd -r - KSP.x86_64

Универсальный патчер от Voidi

#!/bin/sh
position1=$(echo "obase=16; $(perl -n0777e 'print pos()-1,"\n" while /\x01\x00\x00\x00\xB8\x01\x00\x00\x00\xC3\x41\x56\x41\x55\x49/g' "./KSP.x86_64") - E" | bc)
if [ $position1 != "-E" ]
then
        echo "Patching Segfault out of the Rockets ..."
        cp -n "./KSP.x86_64" "./KSP.x86_64.unpatched"
        position2=$(echo "obase=16;ibase=16; $position1 + 5" | bc)
        echo "$position1: 00" | xxd -r - "./KSP.x86_64"
        echo "$position2: 00" | xxd -r - "./KSP.x86_64"
else
        echo "This seems to be not a vanilla KSP executable"
fi

Теперь можно установить хоть все моды, лишь бы аппаратной памяти хватило.

Запуск с учётом фикса локали: LC_ALL=C ./KSP.x86_64

То-же самое для Steam: LC_ALL=C %command%_64

Джойстик

Джойстик должен просто работать. Если игра не видит джойстик, проверьте видит-ли его сам Линукс: ls -l /dev/input/js* /dev/js*. Если команда не выведет никаких файлов, значит, возможно, у вас не установлены драйверы. В Fedora вам потребуется доустановить пакет kernel-modules-extra, переподключить джойстик и попробовать ещё раз.

Нет текста на ряде панелей как в меню так и в игре

Решение

Для Debian 7.5 установить пакет "Installer for Microsoft TrueType core fonts" Для ArchLinux установить "ttf-ms-fonts" (источник - https://wiki.archlinux.org/index.php/Kerbal_Space_Program)

Тема на официальном форуме

http://forum.kerbalspaceprogram.com/threads/24529