mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
add build-xash3d-fwgs-half-life-on-haiku-os.gmi
This commit is contained in:
parent
b0424aee95
commit
4de2777c03
3 changed files with 122 additions and 1 deletions
119
public/uk/build-xash3d-fwgs-half-life-on-haiku-os.gmi
Normal file
119
public/uk/build-xash3d-fwgs-half-life-on-haiku-os.gmi
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# Розвідка боєм: Xash3D (FWGS) / Half-Life в Haiku OS
|
||||
|
||||
Давно з цікавістю приглядаюсь до проєкту вільної операційної системи Haiku, але досі не було вагомих причин її спробувати. Після Linux, Windows і MacOS я не дуже розумів її нішу. Останнім часом, через перебої світла, перебрався на нетбук з 7 Гб оперативної пам'яті і серйозно "вдарився" в оптимізацію енерго-споживання:
|
||||
=> power-optimization-on-linux.gmi Оптимізація енергоспоживання в GNOME / Linux
|
||||
|
||||
Серед такої оптимізації, було й вимкнення шару zram, а звідти - відмова від "товстого" swap, що зкорочує термін служби SSD. Якщо на нетбуці 7 Гб це ще прийнятно, то робоча станція з 3 Гб максимум (4-1) вже занадто. Було прийнято рішення спробувати Haiku у якості основної системи.
|
||||
|
||||
## Системні особливості Haiku
|
||||
|
||||
Найкращий спосіб зорієнтуватись в новій системі - це мабуть спробувати встановити в неї потрібну тобі програму. Оскільки я займаюсь розробкою і майже все збираю з сорсу (це в більшості C++), вирішив зібрати першим щось "не тривіальне": наприклад, олдовий ігровий рушій Xash3D/FWGS і запустити на ньому першу Халфу.
|
||||
|
||||
Кому цікаві інструкції в контексті Linux, то вам сюди:
|
||||
=> half-life-on-linux-using-xash3d-fwgs-engine.gmi Half-Life в Linux на базі рушія Xash3D / FWGS
|
||||
|
||||
### Архітектура
|
||||
|
||||
Класично, Half-Life є 32-бітною грою. Спочатку, я спробував встановити Haiku 32 біт, але система в мене не запустилась а ні на віртуалці QEMU, а ні на "залізі". Тому я все ж поставив 64 біт і нижче будуть інструкції саме для цієї архітектури.
|
||||
|
||||
### Командний рядок
|
||||
|
||||
На моє здивування, на відміну від вже екзотичного сьогодні UI, CLI - дуже нагадує Linux, зокрема за рахунок спільного cureutils: наявність стандартних команд не дадуть заблукати.
|
||||
|
||||
В меню програм є Термінал, але можливо вам також стане в нагоді гайд з підключення до хосту через SSH (адже якщо користуватись virt-manager, то там буфер обміну не працюватиме)
|
||||
|
||||
=> https://www.haiku-os.org/guides/daily-tasks/netservices/
|
||||
=> https://www.haikuinsider.org/ssh-server
|
||||
|
||||
### Пакетний менеджер
|
||||
|
||||
Пакетний менеджер в Haiku називається `pkgman`, він використовується для встановлення програм замість `apt` (Debian) і `dnf` (fedora). Особисто я конвертую залежності в README череш ШІ, це досить зручно:
|
||||
|
||||
``` bash
|
||||
pkgman install libsdl2_devel freetype_devel opus_devel bzip2_devel libvorbis_devel
|
||||
```
|
||||
* звісно, є інші залежності, але вони в мене були встановлені з коробки
|
||||
|
||||
Як бачимо, `sudo` в Haiku не використовується, бо це система для одного користувача. Це мені навіть сподобалось, бо чесно признатись, вже втомився від постійних вводів паролів та перемикання між юзерами системних служб (Linux - все таки, серверна платформа).
|
||||
|
||||
Само собою, відсутність `root` мене погнала шукати віруси і як виявляється, я пропустив анонс першого в 2024 році:
|
||||
=> https://github.com/Siradankullanici/HaikuRansomware World's First Haiku Ransomware/Malware
|
||||
|
||||
## Збірка Xash3D / FWGS
|
||||
|
||||
Збірка рушія відбувається так само, як і на Linux, але мені довелося зробити невеличкий патч:
|
||||
=> https://github.com/FWGS/xash3d-fwgs/pull/2459)
|
||||
|
||||
``` bash
|
||||
git clone --recursive https://github.com/YGGverse/xash3d-fwgs.git
|
||||
git checkout oooo-ps-patch-1
|
||||
cd xash3d-fwgs
|
||||
```
|
||||
|
||||
Якщо на момент читання патч вже змержили до апстріму:
|
||||
|
||||
``` bash
|
||||
git clone --recursive https://github.com/FWGS/xash3d-fwgs
|
||||
cd xash3d-fwgs
|
||||
```
|
||||
|
||||
Перед компіляцією, потрібно ще в двох файлах руками виправити типізацію Ogg/Vorbis API. Руками, тому що це "брудне" рішення у вигляді касту, замість вирішення конфліктів залежностей і я не планую з цього робити RC. Шукаємо і додаємо префікс:
|
||||
|
||||
* `FS_SeekOggVorbis` -> `(void *) FS_SeekOggVorbis`
|
||||
* `OggFilestream_Seek` > `(void *) OggFilestream_Seek`
|
||||
|
||||
Тепер можна збиратись:
|
||||
|
||||
``` bash
|
||||
./waf configure
|
||||
./waf build
|
||||
./waf install --destdir=/path/to/valve-root
|
||||
```
|
||||
|
||||
### Встановлення ігрових наборів
|
||||
|
||||
Ігрові набори Half-Life потрібно придбати:
|
||||
=> https://store.steampowered.com/app/70/HalfLife/
|
||||
|
||||
Або скачати, наприклад з торентів або Radicle/Git:
|
||||
|
||||
```
|
||||
rad:z3LRRg2os4mihf6n12P6m2Ukr4BfW
|
||||
```
|
||||
|
||||
=> https://app.radicle.xyz/nodes/iris.radicle.xyz/rad%3Az3LRRg2os4mihf6n12P6m2Ukr4BfW iris
|
||||
=> https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad%3Az3LRRg2os4mihf6n12P6m2Ukr4BfW rosa
|
||||
|
||||
Детальніше про Radicle, читайте тут:
|
||||
|
||||
=> radicle-is-decentralized-p2p-git-dvcs.gmi Radicle: децентралізований P2P хостинг Git/DVCS
|
||||
* для мене Radicle цікавий тим, що дозволяє контролити різні бінарні файли без перезаливу всього торента.
|
||||
|
||||
Ігрові набори розпаковуються з розташування профілю Steam до теки `/path/to/valve-root/valve`.
|
||||
|
||||
### Portable Half-Life SDK
|
||||
|
||||
Для запуску на альтернативних архітектурах, потрібно додатково зібрати певні залежності:
|
||||
|
||||
``` bash
|
||||
git clone --recursive https://github.com/FWGS/hlsdk-portable.git
|
||||
git checkout bot10
|
||||
cmake -B build -S .
|
||||
cmake --build build
|
||||
```
|
||||
|
||||
Які саме залежності потрібно зкопіювати до `valve` (з теки `build`) - буде вказано в помилці запуску гри. В мене це були файли:
|
||||
|
||||
* `valve/dlls/hl_haiku_amd64.so`
|
||||
* `valve/cl_dlls/client_haiku_amd64.so`
|
||||
|
||||
## Тестування
|
||||
|
||||
Перший запуск (бінарником `./xash3d`) в мене відбувся. Утім, гра сильно гальмувала на віртуалці QEMU, через що я згодом поставив Haiku вже на фізичне залізо аналогічної архітектури (просто зкопіював збірку флешкою, довстановивши на новій машині залежності `*-devel`)
|
||||
|
||||
Гра запустилась і там. Хоч на фізичному залізі вона працює швидше, утім тут явно не вистачає якогось драйвера, хоча система й автоматично підтягнула OpenGL. Спробую згодом ще на зовнішній відео-картці, хоча на форумах повідомляють про окремі проблеми з чіпсетами Radeon.
|
||||
|
||||
## Посилання
|
||||
|
||||
=> https://www.haiku-os.org
|
||||
=> https://github.com/FWGS/xash3d-fwgs/issues/9 Haiku port #9
|
||||
|
|
@ -195,7 +195,7 @@ models/player/... // тут додаємо нашу кастомну модел
|
|||
|
||||
=> https://github.com/FWGS/hlsdk-portable/tree/bot10
|
||||
|
||||
```
|
||||
``` bash
|
||||
git clone --recursive https://github.com/FWGS/hlsdk-portable.git
|
||||
git checkout bot10
|
||||
cmake -B build -S .
|
||||
|
|
@ -236,4 +236,5 @@ connect 94.140.114.89:27015
|
|||
|
||||
## Дивіться також
|
||||
|
||||
=> build-xash3d-fwgs-half-life-on-haiku-os.gmi Розвідка боєм: Xash3D (FWGS) / Half-Life в Haiku OS
|
||||
=> create-half-life-graffiti-logo-in-gimp.gmi Створення графіті Half-Life в GIMP
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
### Нотатки
|
||||
|
||||
=> build-xash3d-fwgs-half-life-on-haiku-os.gmi 2026-02-17 Розвідка боєм: Xash3D (FWGS) / Half-Life в Haiku OS
|
||||
=> radicle-web-service-deployment.gmi 2026-02-12 Розгортання Веб-інфраструктури Radicle на прикладі оверлейних мереж
|
||||
=> radicle-multi-network-seed-deployment.gmi 2026-02-11 Розгортання сіда Radicle в мульти-мережному середовищі
|
||||
=> monitoring-ups-status-on-linux-with-nut.gmi 2026-02-09 Моніторинг статусу UPS в Linux на прикладі NUT
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue