Difference between revisions of "Linux/ru"
m (Undo, added link for fix dead-end page) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
==Запуск в не латинской локали== | ==Запуск в не латинской локали== | ||
===Суть проблемы=== | ===Суть проблемы=== | ||
− | KSP не может нормально работать с русской локалью, основная проблема в том, что англичане записывают десятичные дроби с точкой <code>3.1415</code>, а русские - с запятой <code>3,1415</code>. Из-за бага в движке Unity игра пишет числа в одном виде и пытается читать в другом. | + | [[KSP/ru|KSP]] не может нормально работать с русской локалью, основная проблема в том, что англичане записывают десятичные дроби с точкой <code>3.1415</code>, а русские - с запятой <code>3,1415</code>. Из-за бага в движке Unity игра пишет числа в одном виде и пытается читать в другом. |
===Решение=== | ===Решение=== | ||
+ | [[File:Ksp steam command.jpeg|thumbnail|Командная строка в Steam]] | ||
Запускать игру в латинской локали. В командной строке: | Запускать игру в латинской локали. В командной строке: | ||
Line 13: | Line 14: | ||
<code>LC_ALL=C %command%</code> | <code>LC_ALL=C %command%</code> | ||
− | + | См иллюстрацию. | |
==Моды== | ==Моды== | ||
===Суть проблемы=== | ===Суть проблемы=== | ||
Line 24: | Line 25: | ||
Разумеется, у вас должен быть 64битный процессор и 64хбитное ядро. Команда <code>uname --hardware-platform</code> должна давать ответ <code>x86_64</code>. | Разумеется, у вас должен быть 64битный процессор и 64хбитное ядро. Команда <code>uname --hardware-platform</code> должна давать ответ <code>x86_64</code>. | ||
− | В папке с игрой должен быть файл <code>KSP.x86_64</code> Его необходимо исправить. Откройте консоль в папке с игрой | + | В папке с игрой должен быть файл <code>KSP.x86_64</code> Его необходимо исправить. Откройте консоль в папке с игрой: |
− | <code> | + | <code>cd "$HOME/.local/share/Steam/SteamApps/common/Kerbal Space Program/"</code> |
+ | Команды для исправления для версии 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> | ||
+ | echo "090f37c: 00" | xxd -r - KSP.x86_64</code> | ||
+ | |- | ||
+ | | 0.23 || | ||
+ | <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> | ||
Теперь можно установить хоть все моды, лишь бы аппаратной памяти хватило. | Теперь можно установить хоть все моды, лишь бы аппаратной памяти хватило. | ||
Line 39: | Line 72: | ||
Джойстик должен просто работать. Если игра не видит джойстик, проверьте видит-ли его сам Линукс: <code>ls -l /dev/input/js* /dev/js*</code>. Если команда не выведет никаких файлов, значит, возможно, у вас не установлены драйверы. В Fedora вам потребуется доустановить пакет <code>kernel-modules-extra</code>, переподключить джойстик и попробовать ещё раз. | Джойстик должен просто работать. Если игра не видит джойстик, проверьте видит-ли его сам Линукс: <code>ls -l /dev/input/js* /dev/js*</code>. Если команда не выведет никаких файлов, значит, возможно, у вас не установлены драйверы. В Fedora вам потребуется доустановить пакет <code>kernel-modules-extra</code>, переподключить джойстик и попробовать ещё раз. | ||
− | == | + | ==Нет текста на ряде панелей как в меню так и в игре== |
===Решение=== | ===Решение=== | ||
− | + | Для 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 |
Latest revision as of 02:46, 2 July 2024
Этот раздел содержит информацию об запуске Kerbal Space Program под операционными системами GNU/Linux.
Contents
Запуск в не латинской локали
Суть проблемы
KSP не может нормально работать с русской локалью, основная проблема в том, что англичане записывают десятичные дроби с точкой 3.1415
, а русские - с запятой 3,1415
. Из-за бага в движке Unity игра пишет числа в одном виде и пытается читать в другом.
Решение
Запускать игру в латинской локали. В командной строке:
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 |
|
0.23.5 |
|
0.23 |
|
Универсальный патчер от 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)