MwO na Linuxie - poradnik dla zaawansowanych

Tylko tematy związane z MwO.
Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

No więc: Windows mi się zjechał, i byłem zmuszony niniejszym użyć Linuxa (w tym wypadku użyłem Ubuntu, bo wcześniej spróbowałem użyć OpenSUSE'a, ale Steam się z nim gryzł).
I jak dotąd - po długich przygotowaniach i troubleshootingu w terminalu - idzie wgrać MwO na Linuxie :ugeek:
PS: Wszystko jest zgodne z EULA - nic związanego z grą nie zostało tknięte.

UWAGA: Poradnik jest dla osób, którym nie straszny jest terminal i wpisywanie poleceń do niego ( ;) SeeM) - widoczny na screenach ekran Terminala zostawiłem do celów diagnostycznych.

Przygotowania - czyli co będzie potrzebne:

  • Linux bądź nawet MacOS, jak ktoś się uprze;
  • Najnowszy WINE (wersja Staging jest pożądana, choć każda się nada);
  • Sporo czasu;
  • Oprogramowanie i biblioteki:

  • d3dx_43 z DirectX
  • d3dcompiler_43 z DirectX
  • .NET 4.0
  • Visual Runtime 2010
  • MS XML Parser 3 (MUSI być zainstalowany przed .NET 4.0)

Zaczynajmy.

Na początek instalujemy Wine'a - metoda dowolna (Wine powinien także być w Ubuntu Software, choć wystarczy użyć APT w terminalu:)

Kod: Zaznacz cały

sudo apt-get install wine

Jest wine, no to więc uruchamiamy Konfigurację WINE (instalujemy Gecko, ale nie Mono).
Jeśli jest zakładka Staging, to przechodzimy tam i włączamy:
  • CSMT (Obowiązkowo)
  • EAX (Opcjonalnie)
A jeśli w zakładce Staging nie mamy powyższych opcji a coś związanego z "gallium-nine", to oczywiście zaznaczamy.

Chowamy Konfigurację do paska, i odpalamy Terminala, jak nie mamy go uruchomionego.

Odpalamy kolejno następujące komendy:

Kod: Zaznacz cały

WINEPREFIX=~/.wine32 WINEARCH=win32 wineboot


gdzie ".wine32" można zmienić na inną nazwę (tylko że pamiętajcie o niej) ;)

Aha, pamiętacie także, że od tej pory, każdą komendę poprzedzamy ciągiem "WINEPREFIX=~/.[twój_folder] WINEARCH=win32" !!!

A potem wpisujemy (z poprzedzającym ciągiem oczywiście):

Kod: Zaznacz cały

$ winetricks set ddr=opengl (lub w GUI - wybierz "Select the default wineprefix" -> Zmień ustawienia -> Zaznacz "ddr=opengl" i "winxp" dla pewności)
$ winetricks d3dx9
$ winetricks msxml3 (konieczne będzie pobranie i przerzucenie instalatora, skrypt wyświetli co trzeba)
$ winetricks dotnet40 (tu może wywalić błąd że się nie da - wtedy zainstaluj jak na Windowsie)
$ winetricks vcrun100


Chowamy Terminal i przywracamy na pierwszy plan Konfigurację. Przechodzimy do zakładki Biblioteki.
Upewniamy się, że system jest ustawiony jako Windows XP, a następnie ustawiamy następujące bibioteki jako natywne (native):
  • atl100
  • d3dx9_43
  • d3dcompiler_43
  • mscoree
  • msvcr100
  • msvcp100
  • msxml3
  • vcomp100

Po wprowadzeniu zmian zamykamy Terminal i Konfigurację.

A teraz samo MwO - można pobrać instalator i tradycyjnie zainstalować, jak poniżej:
Obrazek

ale coś się pochrzani z DirectX9, i instalacja się nie powiedzie. Oczywiście, można próbować do skutku, przynajmniej gdy w katalogu docelowym (normalnie to C:\Program Files\Piranha Games\MechWarrior Online) w podkatalogu Bin32 ujrzymy dwa pliki, tj.:
MechWarriorOnline.exe i MWORepairTool.exe, to możemy kontynuować. W innym wypadku będzie trzeba przerzucić pobraną grę z innego komputera.

Odpalamy samą grę (skrót powinien być na pulpicie*).
*Upewnijcie się, że w polu "Polecenie" jest ciąg: env WINEARCH=win32 WINEPREFIX="/home/[twój login]/.wine32" wine C:\\Program\ Files\\Piranha\ Games\\MechWarrior\ Online\\Bin32\\MechWarriorOnline.exe

Efektem jest ten oto obrazek:

Obrazek

Ewentualnie można użyć narzędzia naprawczego:

Obrazek

Najważniejsze jest, aby gra była w pełni aktualna. Po uruchomieniu dajcie znać jak działa ;)

EDIT #1:
Wprowadzono modyfikacje na podstawie wniosków SeeMa oraz własnych spostrzeżeń.
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

Awatar użytkownika
SeeM
Fleet Admiral
Fleet Admiral
Posty: 3979
Rejestracja: 2013-07-31- 19:36
Lokalizacja: Warszawa

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: SeeM »

Że ci się chciało. :) U mnie sprawa z winetricks i kilka pomniejszych detali wgląda inaczej. Po pierwsze potrzebowałem 32-bitowej binarki wine, bo dotnet się inaczej nie zainstaluje. Po drugie parametry do winetricks były trochę inne, ale szybkie szukanie w stylu winetricks list-all | grep d3d podpowiedziało co trzeba zrobić.

Właśnie ściąga się patch, zobaczymy jak to wyjdzie.
+

Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

SeeM pisze:Że ci się chciało. :) U mnie sprawa z winetricks i kilka pomniejszych detali wgląda inaczej. Po pierwsze potrzebowałem 32-bitowej binarki wine, bo dotnet się inaczej nie zainstaluje. Po drugie parametry do winetricks były trochę inne, ale szybkie szukanie w stylu winetricks list-all | grep d3d podpowiedziało co trzeba zrobić.

Właśnie ściąga się patch, zobaczymy jak to wyjdzie.


No wlasnie tez cos mi sie stalo jak wymusilem instalke .NET w prefiksie 64-bitowym.
Zaraz potem XOrg poszedl do piachu a zaczalem instalowac minta tym razem, bo zauwazylem ze Cinnamon ma wiele ficzerow z KDE, a wyglada na bardziej spojny.

Przepraszam za brak PL znakow ( ;) Nahar)
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

Awatar użytkownika
SeeM
Fleet Admiral
Fleet Admiral
Posty: 3979
Rejestracja: 2013-07-31- 19:36
Lokalizacja: Warszawa

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: SeeM »

ManganMan pisze:No wlasnie tez cos mi sie stalo jak wymusilem instalke .NET w prefiksie 64-bitowym.
Zaraz potem XOrg poszedl do piachu a zaczalem instalowac minta tym razem, bo zauwazylem ze Cinnamon ma wiele ficzerow z KDE, a wyglada na bardziej spojny.


Mi tam działa dobrze. Gram na minimalnych detalach graficznych. Pewnie dałoby się je zwiększyć, ale ostatni Mechwarrior, w którego więcej grałem to Mercenaries 2, więc rozmyte tekstury mi nie przeszkadzają. :)
+

Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

ProTip: Pogadaj z Ryo o wskazówkach dla początkujących - w MwO łatwo popełnić kardynalne błędy ;)

A tak to jutro wracam do Ubuntu - coś nie mam ostatnio szczęścia... :/

Wysłane za pomocą mTalk
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

Awatar użytkownika
SeeM
Fleet Admiral
Fleet Admiral
Posty: 3979
Rejestracja: 2013-07-31- 19:36
Lokalizacja: Warszawa

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: SeeM »

ManganMan pisze:ProTip: Pogadaj z Ryo o wskazówkach dla początkujących - w MwO łatwo popełnić kardynalne błędy ;)


Już mi mówił: iść tam gdzie reszta, kręcić tyłkiem pod ostrzałem i chować się za górką. :P
+

Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

SeeM pisze:
ManganMan pisze:ProTip: Pogadaj z Ryo o wskazówkach dla początkujących - w MwO łatwo popełnić kardynalne błędy ;)


Już mi mówił: iść tam gdzie reszta, kręcić tyłkiem pod ostrzałem i chować się za górką. :P

Cały Ryo :P
No dobra, poradnik zaktualizowałem.
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

No dobra SeeM, sprawdzimy czy znasz się na błędach z WINE :twisted:

Pewnego razu zacząłem otrzymywać następujące błędy:

Kod: Zaznacz cały

$ env WINEARCH=win32 WINEPREFIX="/home/user/.wine32" wine C:\\Program\ Files\\Piranha\ Games\\MechWarrior\ Online\\Bin32\\MechWarriorOnline.exe 
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:thread:SetThreadStackGuarantee (0x32fbe4): stub
err:ole:CoGetContextToken apartment not initialised
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
fixme:nls:GetUserPreferredUILanguages stub: 0 0x32e1e0 (nil) 0x32e1dc
fixme:nls:GetThreadPreferredUILanguages 00000000, 0x32e1e0, (nil) 0x32e1dc
fixme:nls:get_dummy_preferred_ui_language (0x0 0x32e1e0 (nil) 0x32e1dc) returning a dummy value (current locale)
fixme:nls:GetUserPreferredUILanguages stub: 0 0x32e1e0 0x194118 0x32e1dc
fixme:nls:GetThreadPreferredUILanguages 00000000, 0x32e1e0, 0x194118 0x32e1dc
fixme:nls:get_dummy_preferred_ui_language (0x0 0x32e1e0 0x194118 0x32e1dc) returning a dummy value (current locale)
fixme:shell:URL_ParseUrl failed to parse L"Accessibility"
fixme:ntdll:EtwRegisterTraceGuidsW (0xa205d2, (nil), {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x32e4a0, (null), (null), 0xd5a15c): stub
fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}
fixme:shell:URL_ParseUrl failed to parse L"MechWarriorOnline.resources"
fixme:shell:URL_ParseUrl failed to parse L"MechWarriorOnline.resources"
fixme:shell:URL_ParseUrl failed to parse L"MechWarriorOnline.resources"
fixme:shell:URL_ParseUrl failed to parse L"MechWarriorOnline.resources"

Unhandled Exception: fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources"
System.Exception: determineBaseParams failed to find BinXY dir!?
   at PatchBot.PatchBot.determineBaseParams()
   at PatchBot.PatchBot..ctor(EPatchType patchType, EPatchTarget patchTarget)
   at BootstrapPatcher.BootstrapPatcherForm.startBootstrapPatch()
   at BootstrapPatcher.BootstrapPatcherForm..ctor()
   at BootstrapPatcher.Program.Main()

Po czym miałem crasha i tyle.

A przy narzędziu naprawczym:

Kod: Zaznacz cały

$ env WINEARCH=win32 WINEPREFIX="/home/user/.wine32" wine C:\\Program\ Files\\Piranha\ Games\\MechWarrior\ Online\\Bin32\\MWORepairTool.exe 
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:thread:SetThreadStackGuarantee (0x32fbe4): stub
err:ole:CoGetContextToken apartment not initialised
fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms"
fixme:shell:URL_ParseUrl failed to parse L"System"
fixme:shell:URL_ParseUrl failed to parse L"System.Drawing"
fixme:nls:GetUserPreferredUILanguages stub: 0 0x32e208 (nil) 0x32e204
fixme:nls:GetThreadPreferredUILanguages 00000000, 0x32e208, (nil) 0x32e204
fixme:nls:get_dummy_preferred_ui_language (0x0 0x32e208 (nil) 0x32e204) returning a dummy value (current locale)
fixme:nls:GetUserPreferredUILanguages stub: 0 0x32e208 0x1877c0 0x32e204
fixme:nls:GetThreadPreferredUILanguages 00000000, 0x32e208, 0x1877c0 0x32e204
fixme:nls:get_dummy_preferred_ui_language (0x0 0x32e208 0x1877c0 0x32e204) returning a dummy value (current locale)
fixme:shell:URL_ParseUrl failed to parse L"Accessibility"
fixme:ntdll:EtwRegisterTraceGuidsW (0xa205d2, (nil), {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x32e3c0, (null), (null), 0xd5a84c): stub
fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {8e9f5090-2d75-4d03-8a81-e5afbf85daf1}
fixme:gdiplus:GdipGetFamilyName No support for handling of multiple languages!
fixme:shell:URL_ParseUrl failed to parse L"MWORepairTool.resources"
fixme:shell:URL_ParseUrl failed to parse L"MWORepairTool.resources"
fixme:shell:URL_ParseUrl failed to parse L"MWORepairTool.resources"
fixme:shell:URL_ParseUrl failed to parse L"MWORepairTool.resources"
fixme:ole:CoGetApartmentType (0x32fc48, 0x32fc44): semi-stub
fixme:process:FlushProcessWriteBuffers : stub
fixme:advapi:UnregisterTraceGuids deadbeef: stub

A tu w ogóle się nie chciał uruchomić...

Spróbuję od zera zainstalować WINE i sprawdzę to jeszcze raz. Jak tak dalej będzie to będę musiał wrócić do Windowsa :/
EDIT#1:
Ok, działa, na szczęście :)
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

Awatar użytkownika
SeeM
Fleet Admiral
Fleet Admiral
Posty: 3979
Rejestracja: 2013-07-31- 19:36
Lokalizacja: Warszawa

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: SeeM »

Bardzo sugeruję zainstalować wine dla architektury x86, przed instaacją i każdą grą dodać do terminala

export WINEARCH="win32"

i dopiero uruchomić grę, zwyczajnie wine MechwarriorOnline.exe. W sumie warto to dodać nawet do bashrc, bo zdecydowana większość oprogramowania windowowego jest lepiej dotestowana i przystosowana dla 32 bitów.
+

Awatar użytkownika
ManganMan
Fleet Admiral
Fleet Admiral
Posty: 3476
Rejestracja: 2013-07-31- 12:58
Lokalizacja: Lębork

Re: MwO na Linuxie - poradnik dla zaawansowanych

Post autor: ManganMan »

Teraz, jak MwO przestało obsługiwać 32-bitowe systemy operacyjne, ludzie kombinują, jak na nowo uruchomić MwO na Linuxie.

Jak dotąd, największy progres osiągnięto z użyciem Steam Play.

Więcej w podanym linku (po angielsku):
https://mwomercs.com/forums/topic/26884 ... team-play/
Obrazek

Forumowy Dekker / GG: 6893006
In case of doubt: Fire everything! 😈

ODPOWIEDZ