sobota, 21 marca 2020

JFSW - Shadow Warrior od 3D Realms pod linuksem w 2020

Na początku musimy zaopatrzyć się w niezbędne pakiety, i chociaż bazowałem na poradniku pod Raspberry Pi powinno działać w każdej dystrybucji debiano-podobnej tj. Ubuntu, Mint czy sam Debian. Osobiście wymagane pakiety chyba miałem bo nie instalowałem tego a wszystko poszło gładko ale jakby ktoś nie miał:
sudo apt-get install build-essential libgl1-mesa-dev libgtk2.0-dev libsdl1.2-dev libvorbis-dev nasm timidity freepats git

Teraz należy pobrać niezbędne źródła:
git clone https://github.com/jonof/jfsw.git

Następnie wchodzimy do katalogu jfsw i pobieramy to co nam jeszcze potrzeba, a bez czego nie ruszymy dalej:
cd jfsw
git clone https://github.com/jonof/jfbuild.git
git clone https://github.com/jonof/jfaudiolib.git
git clone https://github.com/jonof/jfmact.git

Wreszcie pora na samą kompilację:
make

I w końcu dane gry, tzn. z miejsca gdzie mamy grę(ja korzystałem z wersji dostępnej na gog.com) kopiujemy katalog "data" do miejsca gdzie skompilował nam się plik wykonywalny o nazwie "sw".

Wykonując go możemy już uruchomić grę i cieszyć się klasykiem na współczesnym linuksie.
Ale czy to wszystko? Oczywiście, że nie. Warto jeszcze chociażby sprawić abyśmy mogli rozglądać się w górę i w dół za pomocą myszki - co po prawdzie sprawia większy kłopot niż samo skompilowanie źródeł, i trzeba mieć farta aby znaleźć sensowną odpowiedź. Otóż po pierwszym uruchomieniu pliku "sw" utworzony zostanie folder konfiguracyjny "~/.jfsw" gdzie znajdziemy plik "sw.cfg". Aby myszka działała jak marzenie upewniamy się, że następujące zmienne posiadają takie oto wartości:
MouseAnalogAxes0 = "analog_turning"
MouseAnalogAxes1 = "analog_looking"

Następnie za pomocą klawisza "U" uaktywniamy korzystanie z myszki w grze. Wydawałoby się, że opcja "MouseAimingOn" ustawiona w pliku konfiguracyjnym włączy to na stałe, niestety jednak po uruchomieniu gry pozostaje wyłączona a wartość w pliku konfiguracyjnym wraca do zera. Z mojej strony dodam jeszcze kilka rzeczy abyście od razu mogli przyjemniej grać:
Brightness = 3
Crosshair = 1
Move_Forward = "W" "Kpad8"
Move_Backward = "S" "Kpad2"
Jump = "" "/"
Strafe_Left = "," "A"
Strafe_Right = "." "D"
Next_Weapon = "'" "Q"
Previous_Weapon = ";" "E"
MouseButton0 = "Fire"
MouseButtonClicked0 = ""
MouseButton1 = "Jump"
MouseButtonClicked1 = ""
MouseButton2 = "Crouch"
MouseButtonClicked2 = "AutoRun"
MouseAnalogScale0 = 81920

Tyle w temacie, gra działa rewelacyjnie.

Źródła:

https://lb.raspberrypi.org/forums/viewtopic.php?t=197981
https://forums.3drealms.com/vb/showthread.php?t=11797

Kompilacja Fluxbox 1.3.7 kompilatorem C++ 17 (GCC 11)

Po aktualizacji systemu jakiś czas temu okazało się, że posiadając nową wersję gcc w systemie nie byłem w stanie poprawnie skompilować Fluxb...