Results 1 to 5 of 5

HOWTO: Divinity Original Sin 2 unter Linux mittels WINE

  1. #1 Reply With Quote

    Metasyntaktische Variable
    foobar's Avatar
    Join Date
    Sep 2004
    Location
    Direkt hinter dir! Buh!
    Posts
    24,515
    Für mein vergessliches zukünftiges Ich (und eventuell noch ein paar andere Trottel) dokumentiere ich hier mal, wie man D:OS2 (Definitive Edition) unter Linux zum Laufen bringt. Es funktioniert nämlich überraschenderweise ganz wunderprächtig, wenn man die richtigen Kniffe anwendet.


    Voraussetzungen:

    • Divinity Original Sin 2 Definitive Edition von GOG.com (Link)
    • Linux Mint 20 (Link)
    • WINE 5.0.2 (Link)
    • Kernel 5.4.0
    • NVidia Driver 450
    • User, der weiß, wie er die o.g. Voraussetzungen erfüllen kann und beim Anblick der Shell keinen Herzkasper kriegt.


    Es mag durchaus auch mit anderen Versionen des Spiels, Linux-Distris, WINE-Versionen, Kerneln oder Grafikkarten und Treibern funktionieren. Aber die habe ich nicht getestet.


    Installation:

    Zuerst richten wir uns ein neues WINE-Präfix ein, welches nur für die Installation relevant ist und später (aus Gründen) gelöscht werden wird. Öffnet ein Terminalfenster und gebt ein:

    Code:
    $ export WINEPREFIX=~/.wine.temp
    $ export WINEARCH=win64
    $ winecfg

    Nun erzeugt winecfg ein neues Präfix mit der leeren Standardkonfiguration. Ich habe die Windows-Version auf Windows 8 gestellt, aber es spielt vermutlich keine große Rolle. Lediglich XP oder älter darf man nicht wählen, weil D:OS2 dann meckert. Da D:OS2 ein 64bittiges Spiel ist, brauchen wir auch ein 64bittiges WINE, welches die oben gesetzte Umgebungsvariable WINEARCH sicherstellt.

    In der selben Shell (!) starten wir nun die Installation der von GOG.com heruntergeladenen Setup-Datei:

    Code:
    $ cd Downloads
    $ wine 'setup_divinity_original_sin_2_3.6.69.4648_(40474).exe'

    Da klickt ihr euch dann mehr oder weniger normal durch. Allerdings solltet ihr ein anderes Installationsziel festlegen. Standardmäßig will der Installer das Spiel nach C: installieren. Das liegt aber innerhalb eures WINE-Präfixes, welches (wenn ihr dieser Anleitung folgt) später entsorgt werden wird. WINE bindet euer Linux-Root immer als Laufwerk Z: ein. Ich habe das Spiel bei mir also in mein Homeverzeichnis unter Z:\home\user\Spiele\Divinity - Original Sin 2 installiert.

    Hinweis: Es kann sein, dass am Ende der Installation, wenn der Installer die diversen Laufzeitumgebungen (.NET, DirectX, etc.) installieren will, Fehlermeldungen erscheinen. Die sollte man getrost wegklicken können, da sie irrelevant sind. Das Spiel selbst wurde hoffentlich einwandfrei installiert.

    Wenn ihr möchtet, könnt ihr nun noch die Erweiterungen nachschieben. Beispielsweise Sir Lora:

    Code:
    $ wine 'setup_divinity_original_sin_2_-_companion_sir_lora_the_squirrel_3.6.69.4648_(40474).exe'

    Auch hier klickt ihr euch normal durch.

    Am Ende, wenn alles installiert ist, könnt ihr das temporäre WINE-Präfix wieder löschen. Darin befinden sich u.U. Laufzeitumgebungen (oder deren fehlerhaft installierte Reste), die hinterher nur Probleme machen. Wir richten für das Spiel lieber gleich ein sauberes, neues Präfix ein.

    Code:
    $ rm -r ~/.wine.temp


    Einrichtung:

    Soweit eigentlich alles normal und für einen halbwegs erfahrenen Linuxer eher unspektakulär. Der interessante Teil kommt jetzt, nämlich wie man sein WINE richtig konfigurieren muss. Die bei älteren Spielen oft hilfreichen winetricks wie d3dx9 oder d3dx10 führen nämlich in die Irre. Damit läuft das Spiel zwar grundsätzlich, hat aber leider gewisse grafische Macken. Manche Shader funktionieren nicht richtig, man kann den Fortschrittsbalken kaum erkennen, die kleinen Symbole neben dem Charakterportrait sind einfach nur schwarze Kästchen und Bücher oder sonstiges Lesematerial erscheinen auch einfach als schwarze Boxen ohne Inhalt. Hier nun also die Vorgehensweise, die (zumindest bei mir) von Erfolg gekrönt war.

    Zuerst einmal richten wir ein neues WINE-Präfix im Installationsverzeichnis des Spiels ein. Dieses wird dann später exklusiv für D:OS2 verwendet.

    Code:
    $ export WINEARCH=win64
    $ export WINEPREFIX="/home/user/Spiele/Divinity - Original Sin 2/.wine"
    $ winecfg

    Wenn ihr das Spiel woanders hin installiert habt, müsst ihr den Pfad natürlich entsprechend anpassen. In winecfg stellt wieder Windows 8 ein, ansonsten ist da nicht viel zu machen.

    Jetzt installieren wir den auf Vulkan basierenden DirectX-Wrapper von Joshua Ashton, die alle o.g. Darstellungsfehler behebt. Es gibt zwar ein fertiges winetricks-Verb für diese Bibliothek, doch leider installierte das bei mir immer die veraltete Version 0.40.1. Damit kommt man schon recht weit, erlebt im zweiten Akt des Spiels dann aber einige Abstürze, die bei mir verschwanden, nachdem ich die aktuelle Version eingespielt hatte. Also nehmen wir die gleich. Ladet euch hier die aktuelle Version herunter. In meinem Fall war das die dxvk-1.7.2.tar.gz. Die könnt ihr nun entpacken und dann in euer oben gesetztes WINEPREFIX installieren:

    Code:
    $ tar xvzf dxvk-1.7.2.tar.gz 
    dxvk-1.7.2/
    dxvk-1.7.2/setup_dxvk.sh
    dxvk-1.7.2/x32/
    dxvk-1.7.2/x32/d3d10_1.dll
    dxvk-1.7.2/x32/d3d10.dll
    dxvk-1.7.2/x32/d3d11.dll
    dxvk-1.7.2/x32/dxgi.dll
    dxvk-1.7.2/x32/d3d9.dll
    dxvk-1.7.2/x32/d3d10core.dll
    dxvk-1.7.2/x64/
    dxvk-1.7.2/x64/d3d10_1.dll
    dxvk-1.7.2/x64/d3d10.dll
    dxvk-1.7.2/x64/d3d11.dll
    dxvk-1.7.2/x64/dxgi.dll
    dxvk-1.7.2/x64/d3d9.dll
    dxvk-1.7.2/x64/d3d10core.dll
    
    $ cd dxvk-1.7.2
    
    $ ./setup_dxvk.sh install --with-d3d10

    Während der Installation erhielt ich mehrfach die Meldung: „This application could not be started” (Screenshot). Ich habe einfach jedes Mal auf „Nein” geklickt und den Fehler ignoriert. Installiert wurde die Bibliothek offenbar trotzdem korrekt.

    Anschließend funktioniert das Spiel im Prinzip schon, zumindest grafisch. Allerdings hat die Tastatur bei mir in diesem Modus (anders als beim vorher getesteten MS-DirectX) nicht funktioniert. Eingaben landeten stets nicht im Spiel, sondern dem Terminal, von welchem aus es gestartet worden war. Um dies auch noch in den Griff zu kriegen, öffnet den Registry-Editor von WINE:

    Code:
    $ regedit

    Navigiert dann zum Schlüssel HKEY_CURRENT_USER\Software\Wine\X11 Driver und legt dort einen neuen Wert vom Type „Zeichenkette” (REG_SZ) an. Der Name des Eintrags lautet „UseTakeFocus” und der Wert ist „N” (Screenshot).

    Das müsste es im Prinzip gewesen sein. Jetzt sollte das Spiel eigentlich fehlerfrei laufen. Jedenfalls habe ich bei mir bisher keine weiteren Probleme bemerkt. Online-Krams habe ich aber nicht getestet.


    Komfort:

    Damit man nicht jedesmal das WINE-Präfix von Hand setzen muss, kann man sich mit einem Shellskript behelfen. Erzeugt im Spieleverzeichnis eine Datei, bspw. launch.sh mit folgendem Inhalt:

    Code:
    #!/bin/sh
    #
    # Launcher for Divinity Original Sin 2
    #
    
    export WINEPREFIX="/home/user/Spiele/Divinity - Original Sin 2/.wine"
    export WINEARCH=win64
    
    wine 'Z:\home\user\Spiele\Divinity - Original Sin 2\DefEd\bin\EoCApp.exe'

    Macht die Datei dann mit:

    Code:
    $ chmod +x launch.sh

    ausführbar und künftig könnt ihr D:OS2 über dieses Shellskript starten. Bei Bedarf auch über ein Desktop-Icon oder dergleichen. Die Pfade müsst ihr natürlich entsprechend anpassen.


    Abschließende Hinweise:


    WINE-Aufruf:

    Wichtig ist, dass ihr WINE immer mit Pfaden in Windows-Notation aufrufen solltet. Das gilt sowohl für die Installation als auch das Spiel an sich. Also nicht:

    Code:
    $ wine /pfad/zu/EoCApp.exe  # FALSCH!

    sondern:

    Code:
    $ wine 'Z:\pfad\zu\EoCApp.exe'  # RICHTIG!

    Und da Windows-Pfade den umgekehrten Schrägstrich (Backslash) enthalten, müsst ihr sie entweder mit einfachen Anführungszeichen (') einschließen oder doppelt angeben („Z:\\pfad\\zu\\EocApp.exe”). Siehe auch die Manpage zur Bash, Abschnitt QUOTING.

    WINE mit Unix-Pfaden aufzurufen kann mitunter funktionieren, muss es aber nicht. Und in diesem Fall macht es eben Probleme. Also ruft es entweder direkt aus dem Verzeichnis auf, in dem sich die EXE-Datei befindet. Oder gebt den Pfad in Windows-Notation an.


    Savegames und Mods:

    Spielstände (Savegames), Einstellungen und Mods landen in eurem WINE-Präfix unter $WINEPREFIX/drive_c/users/<username>/Meine Dokumente/Larian Studios/Divinity Original Sin 2 Definitive Edition/.

    Wenn ihr dieser Anleitung gefolgt seid, liegt euer WINEPREFIX ja im Spiele-Verzeichnis. Wem dieser Pfad zu lang ist, kann sich einen Symlink anlegen. Beispielsweise:
    Code:
    $ cd "$HOME/Spiele/Divinity - Original Sin 2"
    $ ln -s ".wine/drive_c/users/$USER/Meine Dokumente/Larian Studios/Divinity Original Sin 2 Definitive Edition/" LocalStorage

    Damit habt ihr dann direkten Zugriff auf die benutzerspezifischen Dateien (Einstellungen, Profile mit Savegames, Mods, etc.) im Verzeichnis „LocalStorage” im Spieleordner selbst.

    Feeling a bit masochistic and want to read more of my diatribes? Check out Foobar's Rantpage.

    foobar erklärt die Welt der Informatik: Was ist ein Zeichensatz?Was ist die 32Bit-Grenze?Warum sind Speicheroptimierer Unsinn?Wie teste ich meinen RAM?Was ist HDR?Was ist Tesselation?Warum haben wir ein Urheberrecht?Partitionieren mit MBR oder GPT?Was hat es mit dem m.2-Format auf sich?Warum soll ich meine SSD nicht zum Anschlag befüllen?Wer hat an der MTU gedreht?UEFI oder BIOS Boot?Was muss man über Virenscanner wissen?Defragmentieren sinnvoll?Warum ist bei CCleaner & Co. Vorsicht angesagt?Was hat es mit 4Kn bei Festplatten auf sich?Was ist Bitrot?Was sind die historischen Hintergründe zur (nicht immer optimalen) Sicherheit von Windows?Wie kann ich Datenträger sicher löschen?Was muss ich bzgl. Smartphone-Sicherheit wissen?Warum sind Y-Kabel für USB oft keine gute Idee?Warum sind lange Passwörter besser als komplizierte?Wie funktionieren Tintenstrahldrucker-Düsen?Wie wähle ich eine Linux-Distribution für mich aus?Warum ist Linux sicherer als Windows?Sind statische Entladungen bei Elektronik wirklich ein Problem?Wie repariere ich meinen PC-Lüfter?Was ist die MBR-Lücke?Wie funktioniert eine Quarz-Uhr?Was macht der Init-Prozess unter Linux und wie schlimm ist SystemD?Mainboard-Batterie - wann wechseln?Smartphone ohne Google?
    foobar is offline Last edited by foobar; 16.11.2020 at 14:31. Reason: Fipptehler, Ergänzungen

  2. #2 Reply With Quote
    Verloren in Thedas Almalexia's Avatar
    Join Date
    Aug 2018
    Location
    Gramfeste
    Posts
    12,612
    Funktioniert das ganze auch mit einer AMD-Grafikkarte oder ist eine nVidia zwingend erforderlich?
    Reise einer Aschländerin | Tagebuch einer Hochelfin | Elfenherz
    Intel Core i7 10700KF@HR-2 Macho - Stock | Gigabyte Z590 Aorus Pro AX | Corsair 32GB Vengenance 3200 - G.Skill AEGIS 32GB DDR4-3200 = 64GB DDR4-3200 | ASUS AMD Radeon 6800 XT TUF Gaming OC+
    Samsung SSD 970 Evo Plus 1000GB@Windows 10 Pro | Crucial MX500 1TB | Hitachi HDS723020BLA642 2000GB | Hitachi HDS721075KLA330@Hot Plug 750GB | WDC WD40EZRZ 4000GB | WDC WD40EFZX 4000GB
    Seasonic FOCUS GX650 650W | Fractal Design Define 7 TGL | Externer DVD-Brenner | SATA-Wechselrahmen für 3.5 HDD | Windows 10 Pro
    Gaius Julius Caesar did nothing wrong!
    'Cause no one said that freedom's free

    Almalexia is offline

  3. #3 Reply With Quote

    Metasyntaktische Variable
    foobar's Avatar
    Join Date
    Sep 2004
    Location
    Direkt hinter dir! Buh!
    Posts
    24,515
    Quote Originally Posted by Almalexia View Post
    Funktioniert das ganze auch mit einer AMD-Grafikkarte oder ist eine nVidia zwingend erforderlich?
    Ich habe es mangels AMD-Karte nicht testen können. Wenn es eine Karte ist, für die es moderne Linux-Treiber mit Vulkan-Hardwarebeschleunigung gibt, dann vermutlich schon.

    AMD hat sich bei der Unterstützung von Linux lange Zeit nicht viel Mühe gegeben. Nebenan in allgemeinen Software-Forum hatten wir mal den Fall eines Users, der eine zu dem Zeitpunkt ~5 Jahre alte AMD-Grafikkarte hatte und sie nicht zum Zocken unter Linux benutzen konnte. Der aktuelle AMD-Treiber hatte keinen Support mehr für die alte Karte, der alte Legacy-Treiber funktionierte auf dem neuen X-Server der eingesetzten Distri nicht. Und der von Freiwilligen aus der Community entwickelte Open Source Treiber war für Gaming nicht zu gebrauchen, weil die 3D-Hardwarebeschleunigung fehlte. AMDs Position zu dem Problem war eben: Kauf dir halt ’ne neue Karte, du Depp! Wenn man so einen Fall hat, ist man halt angeschissen.

    Der NVidia-Treiber ist zwar kein Open Source, aber er funktioniert zuverlässig, bietet vergleichbare Performance zum Windows-Pendant und unterstützt praktisch alle noch relevanten Karten (unter Linux Mint mit dem aktuellen Treiber kriegt man selbst eine 8 Jahre alte GT600 noch zum Laufen). In diesem Sinne ist NVidia unter Linux einfach besser.

    Zumindest historisch. In letzter Zeit hat AMD mit den AMDGPU-Treibern gute Arbeit geleistet (der Treiber ist sogar Open Source). Sofern sie da nicht wieder (wie schon mehrfach in der Vergangenheit) plötzlich die Lust verlieren, sind aktuelle AMD-Karten unter Linux durchaus nutzbar. Das hilft aber natürlich niemandem, der noch eine alte Karte hat, für die AMD keinen Support mehr leisten will.

    Im Zweifel einfach mal ausprobieren.

    Feeling a bit masochistic and want to read more of my diatribes? Check out Foobar's Rantpage.

    foobar erklärt die Welt der Informatik: Was ist ein Zeichensatz?Was ist die 32Bit-Grenze?Warum sind Speicheroptimierer Unsinn?Wie teste ich meinen RAM?Was ist HDR?Was ist Tesselation?Warum haben wir ein Urheberrecht?Partitionieren mit MBR oder GPT?Was hat es mit dem m.2-Format auf sich?Warum soll ich meine SSD nicht zum Anschlag befüllen?Wer hat an der MTU gedreht?UEFI oder BIOS Boot?Was muss man über Virenscanner wissen?Defragmentieren sinnvoll?Warum ist bei CCleaner & Co. Vorsicht angesagt?Was hat es mit 4Kn bei Festplatten auf sich?Was ist Bitrot?Was sind die historischen Hintergründe zur (nicht immer optimalen) Sicherheit von Windows?Wie kann ich Datenträger sicher löschen?Was muss ich bzgl. Smartphone-Sicherheit wissen?Warum sind Y-Kabel für USB oft keine gute Idee?Warum sind lange Passwörter besser als komplizierte?Wie funktionieren Tintenstrahldrucker-Düsen?Wie wähle ich eine Linux-Distribution für mich aus?Warum ist Linux sicherer als Windows?Sind statische Entladungen bei Elektronik wirklich ein Problem?Wie repariere ich meinen PC-Lüfter?Was ist die MBR-Lücke?Wie funktioniert eine Quarz-Uhr?Was macht der Init-Prozess unter Linux und wie schlimm ist SystemD?Mainboard-Batterie - wann wechseln?Smartphone ohne Google?
    foobar is offline Last edited by foobar; 17.11.2020 at 18:25.

  4. #4 Reply With Quote
    Verloren in Thedas Almalexia's Avatar
    Join Date
    Aug 2018
    Location
    Gramfeste
    Posts
    12,612
    Ok danke.
    Mit meiner RX580 sollte es gehen?
    Reise einer Aschländerin | Tagebuch einer Hochelfin | Elfenherz
    Intel Core i7 10700KF@HR-2 Macho - Stock | Gigabyte Z590 Aorus Pro AX | Corsair 32GB Vengenance 3200 - G.Skill AEGIS 32GB DDR4-3200 = 64GB DDR4-3200 | ASUS AMD Radeon 6800 XT TUF Gaming OC+
    Samsung SSD 970 Evo Plus 1000GB@Windows 10 Pro | Crucial MX500 1TB | Hitachi HDS723020BLA642 2000GB | Hitachi HDS721075KLA330@Hot Plug 750GB | WDC WD40EZRZ 4000GB | WDC WD40EFZX 4000GB
    Seasonic FOCUS GX650 650W | Fractal Design Define 7 TGL | Externer DVD-Brenner | SATA-Wechselrahmen für 3.5 HDD | Windows 10 Pro
    Gaius Julius Caesar did nothing wrong!
    'Cause no one said that freedom's free

    Almalexia is offline

  5. #5 Reply With Quote

    Metasyntaktische Variable
    foobar's Avatar
    Join Date
    Sep 2004
    Location
    Direkt hinter dir! Buh!
    Posts
    24,515
    Quote Originally Posted by Almalexia View Post
    Ok danke.
    Mit meiner RX580 sollte es gehen?
    Probiere es aus und du wirst es wissen.

    Feeling a bit masochistic and want to read more of my diatribes? Check out Foobar's Rantpage.

    foobar erklärt die Welt der Informatik: Was ist ein Zeichensatz?Was ist die 32Bit-Grenze?Warum sind Speicheroptimierer Unsinn?Wie teste ich meinen RAM?Was ist HDR?Was ist Tesselation?Warum haben wir ein Urheberrecht?Partitionieren mit MBR oder GPT?Was hat es mit dem m.2-Format auf sich?Warum soll ich meine SSD nicht zum Anschlag befüllen?Wer hat an der MTU gedreht?UEFI oder BIOS Boot?Was muss man über Virenscanner wissen?Defragmentieren sinnvoll?Warum ist bei CCleaner & Co. Vorsicht angesagt?Was hat es mit 4Kn bei Festplatten auf sich?Was ist Bitrot?Was sind die historischen Hintergründe zur (nicht immer optimalen) Sicherheit von Windows?Wie kann ich Datenträger sicher löschen?Was muss ich bzgl. Smartphone-Sicherheit wissen?Warum sind Y-Kabel für USB oft keine gute Idee?Warum sind lange Passwörter besser als komplizierte?Wie funktionieren Tintenstrahldrucker-Düsen?Wie wähle ich eine Linux-Distribution für mich aus?Warum ist Linux sicherer als Windows?Sind statische Entladungen bei Elektronik wirklich ein Problem?Wie repariere ich meinen PC-Lüfter?Was ist die MBR-Lücke?Wie funktioniert eine Quarz-Uhr?Was macht der Init-Prozess unter Linux und wie schlimm ist SystemD?Mainboard-Batterie - wann wechseln?Smartphone ohne Google?
    foobar is offline

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •