#149. Kącik Techniczny nr 3

Skoro ostatnio było o Protonie, to teraz warto by było wspomnieć o małym projekcie, który wiele osiągnął, a mianowicie o WINE, którego rozwinięcie brzmi Wine Is Not Emulator.

Początkowo wydano go 4 lipca 1993, czyli jest nieco starszy niż ja. Zapoczątkował go Eric Youngdale, a od 1994 po dziś dzień prowadzi go Alexandre Julliard.

Zadaniem WINE jest dosłownie duplikować zachowanie Windowsa w stosunku do danego programu/gry – jest zakładką tłumaczącą zachowanie programu dla Linuxa. Twórcy dokonują tego przez implementacje WindowsAPI, czyli interfejsu programistycznego, graficznego, czy bibliotek do WINE. Chociaż jest to dosyć ciężkie zadanie, bo nie wszystko ma otwarty kod źródłowy, aby tak po prostu przestudiować, jak zostało to zrobione. Przykładem jest Directx11, który przez długi czas pozostawał poza zasięgiem.

W 1996 powstali CodeWeavers, którzy wpierw zajęli się konsultacją, a potem sprzedażą komercyjnej i nieco bardziej dopracowanej wersji WINE o nazwie CrossOver. Są oni głównym sponsporem WINE, który, w przeciwieństwie do CrossOver, ma pozostać darmowy. Wsparcie mają też od Google, które, poza komercyjnym sponsoringiem, często dofinansowuje ich w ramach Google Summer of Code.

Pierwsza stabilna wersja WINE (1.0) wyszła po 15 latach od pojawienia się programu, czyli w 2008, a obecnie wydawane są wersje 3.xx.

Moja przygoda z WINE zaczęła się w 2012 roku z wersją 1.6, kiedy to po stracie laptopa Smok przekonał mnie do spróbowania Linuxa, potem WINE i tak to się jakoś potoczyło. Chociaż wtedy było więcej zachodu z odpaleniem gry (nie każdej, ale jednak) to moją pierwszą windowsową grą odpaloną na Linuxie było Knights of the Old Republic. Potem zacząłem grać w Star Wars The Old Republic, które wtedy potrzebowało specjalnego skryptu, aby się uruchomić, a dziś działa bez problemu i nie wymaga już takich rozwiązań (niedawno ściągałem to miałem okazję sprawdzić ;)).

W mniej więcej 2015/2016 zacząłem używać wine-staging, która jest wersją z licznymi łatkami, a tym samym z usprawnionym działaniem. Dzięki temu miałem dostęp do gier lub programów z ograniczoną funkcjonalnością przy zwykłym WINE. Takim przykładem jest np. platforma Uplay. 🙂

Od sierpnia 2018, do gier na Steamie, używam Protona, o którym był już osobny wpis. 🙂

WINE posiada coś takiego, jak butelka (bottle) lub prefix. To jest coś w rodzaju osobnego folderu z ustawieniami programu. Dzięki temu możemy testować gry bez narażania naszej głównej butelki na uszkodzenie (co może się zdarzyć, jeśli zaczniemy doinstalowywać biblioteki, programy, itd.). Butelki mogą mieć 32-bitową lub 64-bitową architekturę, co pozwala manewrować między różnymi wymaganiami gier lub programów. Daje to spore poczucie bezpieczeństwa, kiedy chcemy (nawet bardzo drastycznie) coś sprawdzić, ale nie chcemy namieszać w obecnych ustawieniach.

Moje doświadczenie z WINE jest jak najbardziej pozytywne. Nie jest to idealny program, ale biorę pod uwagę ile przeciwności musi pokonać, aby dostarczyć coś, co pozwala mi zagrać w grę na systemie, który nie był do tego przeznaczony. Nie zliczę ile razy byłem zły, bo coś mi nie działało, ile razy cieszyłem się, bo przy nowej wersji naprawiano błędy uniemożliwiające mi rozgrywkę, ile razy pękałem z dumy, bo rozwiązałem problem. W pewnym momencie sam zacząłem wynajdywać rozwiązania i udzielać porad innym graczom.

Z tego, co słyszałem, WINE zapragnęli także niektórzy użytkownicy Windowsa, bowiem zapewnia on większe możliwości, jeśli chodzi o obsługę starszych gier niż tryb kompatybilności w Windowsie. Prośba jak na razie nie została spełniona i nie zapowiada się, aby twórcy poszli kiedykolwiek w tym kierunku – najpewniej dlatego, że już teraz mają wystarczająco do zrobienia.

Gdyby nie WINE to ten blog mógłby tak po prostu nie powstać. W końcu ten “buntownik” w tytule nie odnosi się tylko do jednej rzeczy. 😉

Mam nadzieję, że ten wpis, choć taki trochę chaotyczny, to jednak się podobał. Zamierzam wrzucić z czasem kilka porad i rozwiązań, które mogą przydać się początkującym użytkownikom. 🙂

Mefisto

#149. Kącik Techniczny nr 3 Read More »