Bioshock Infinite für Linux erhältlich

Bild des Benutzers comrad
Tags:

Es wurde Wort gehalten, für Anfang 2015 wurde die Portierung versprochen und seid heute kann die Linux-Version von Bioshock Infinite heruntergeladen werden. Die DLCs Burial At Sea Episode One und Two sind ebenfalls für Linux erhältlich. Leider wurde die Portierung von "Virtual Programming" vorgenommen, was es für ziemlich wahrscheinlich macht, dass es sich hierbei nur um einen eON-Port und somit um keinen nativen Port handelt

Multimedia
Ground0
Bild des Benutzers Ground0
Offline
Beigetreten: 11.06.2008
Beiträge: 6

Hallo zusammen

Nach der Absturzmeldung heute denke ich ist es definitiv ein "Wine" artiger Wrapper...

[thread ffffffff][I][0]: Log system initialised
[thread ffffffff][I][0]: Default allowed number of simultaneously open files in the system is 2448.
[thread ffffffff][I][0]: Current memlock limit is 65536.
[thread ffffffff][I][0]: setrlimit(RLIMIT_MEMLOCK) failed, (1) Operation not permitted
[thread ffffffff][I][1]: setup_teb_register() - using LDT entry 13
[thread 00000001][I][85]: Creating OpenGL Core context failed
[thread 00000001][I][140]: OpenGL information:
[thread 00000001][I][140]:     renderer: Gallium 0.4 on AMD PITCAIRN
[thread 00000001][I][140]:     vendor: X.Org
[thread 00000001][I][140]:     version: 3.0 Mesa 10.5.0
[thread 00000001][I][140]:     GLSL version: 1.30
[thread 00000001][I][140]:     Available texture memory (from MESA extension): 2048 MB
[thread 00000001][I][161]: Found no valid VPFS database; created empty one.
[thread 00000001][I][226]: TomCrypt initializing...
[thread 00000001][I][226]: TomCrypt initialized
[thread 00000001][W][227]: eON_GetProcAddress() for module 0x1750000, in PE file 'msvcrt.dll' FAILED. Proc not found at name '_get_terminate'.
[thread 00000005][W][240]: While loading bitmap, source file 'C:\home\#####\.local\share\Steam\SteamApps\common\BioShock Infinite\Binaries\Win32\..\..\XGame\Splash\PC\Splash.bmp' wasn't there. Failing the function.
[thread 00000004][I][1271]: Enumerating COM libraries...
[thread 00000004][W][1660]: eON_LoadLibraryEx() couldn't load 'NVCPL.DLL', returning NULL!
[thread 00000004][W][1660]: eON_LoadLibraryEx() couldn't load 'ATIMGPUD.DLL', returning NULL!
[thread 00000004][W][1660]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][1660]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][I][1660]: D3D11CreateDevice( pAdapter = 0xf1c78160, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0xf2ea37e0, FeatureLevels = 2, SDKVersion = 0x7, ppDevice = 0xf2ea37ec, pFeatureLevel = 0xf2ea3a80, ppImmediateContext = 0xf2ea37f0 )
[thread 00000004][I][1660]: D3D11CreateDevice( SDKVersion = 7 ) created device 0xf1c781b8 and immediate context 0xf1c7f330
[thread 00000004][I][1671]: Direct3D -> OpenGL context information:
[thread 00000004][I][1671]:     renderer: Gallium 0.4 on AMD PITCAIRN
[thread 00000004][I][1671]:     vendor: X.Org
[thread 00000004][I][1671]:     version: 3.0 Mesa 10.5.0
[thread 00000004][I][1671]:     GLSL version: 1.30
[thread 00000004][I][7177]: Starting to delete D3D11 device...
[thread 00000004][I][7177]: Direct3D11ImmediateDeviceContext deletion starts.
[thread 00000004][I][7262]: ===enforcing log flush===

Gruss Ground0

Commandline
Bild des Benutzers Commandline
Offline
Beigetreten: 23.05.2008
Beiträge: 287

@Ground0

Das Spiel wurdde mit den eON Wrapper geportet.

thechef
Bild des Benutzers thechef
Offline
Beigetreten: 17.05.2008
Beiträge: 178

Was ist die Codebase von eON. Der Wrapper ist doch nicht etwa von Grund auf neu geschrieben? Es gibt wohl kaum jemanden der so mal so die Manpower aufbringt wine zu überholen. wine ist LGPL. Es geht nicht auf. Was hab ich verpasst?

mcflyle
Bild des Benutzers mcflyle
Offline
Beigetreten: 13.04.2012
Beiträge: 280

http://www.reddit.com/r/linux_gaming/comments/29jwj8/psa_eon_is_not_a_wrapper/

Es scheint zumindest anders zu arbeiten, als wine. Die originalen binaries werden nicht benutzt, sondern der sourcecode "wrapped". Aber laut diversen Nutzerangaben im Netz mit Performanceeinbußen, die sogar wine besser dastehen lassen. Also was soll man davon halten?

Ich verstehe auch nicht ganz, warum dieser Weg technisch gewählt wurde. Mein Laienverständnis sagt mir, wenn der "wrapper" auf so niedriger Ebene arbeitet, wäre der Weg zur kompletten Portierung doch nicht mehr weit, oder sehe ich das falsch?

Vielleicht kann ja jemand hier Licht ins Dunkel bringen.

Edit: VP spricht sogar von "native implementation", wobei ich das recht wiedersprüchlich finde. Wie soll direct3d nativ auf opengl ausgegeben werden? Oder seh ich das wieder zu laienhaft?

Zitat VP: "We have an established and robust technology, known as eON, which was created from the ground up for gaming. It is a fully native implementation of essential Windows technologies (such as Direct3D), developed with support from our close relationships with Fortune 500 hardware and software technology companies."

PlayX
Bild des Benutzers PlayX
Offline
Beigetreten: 04.07.2008
Beiträge: 301

Läuft eigentlich recht gut, sogar besser als Witcher 2.
Um das Spiel aber zum ordentlichen laufen zu bewegen musste ich vorher auf den NVidia 340 downgraden, da es mit dem 346 nicht lief und die CPU Taktung per hand fest setzen, da es manchmal bei Taktwechsel abstürzt. Mit diesen beiden Vorkehrungen läuft es dann aber super.

bloodyroot
Bild des Benutzers bloodyroot
Offline
Beigetreten: 24.10.2008
Beiträge: 81

@mcflyle: Dann geb ich jetzt als ehemaliger SW-Entwickler auch mal meinen Senf dazu ab. Wie Du schon richtig erwähnt hast, arbeitet Wine durch das Abfangen der Windows-spezifischen Calls bzw. Funktionsaufrufe und versucht diese in Linux-äquivalente Aufrufe umzumappen. Wine ist ein generischer Ansatz ist, sprich man veruscht alles lauffähig zu kriegen, da man ja nicht weiß, welches Programm der Benutzer später mit Wine aufrufen will. Soll heißen man muss alles abfangen was es eventuell geben kann und nicht unter Linux gibt. eON wird aber nun in ein bestimmtes Programm bereits im Sourcecode miteingebaut. Zum einen kann man nun für dieses Programm ganz genau sagen, welche Funktionsaufrufe auftreten, die eine Behandlung benötigen, da man ja das ganze Programm schon kennt. Zum anderen kann man bereits zum Compile-Zeitpunkt, also dann, wenn man das Programm vom Sourcecode in das Binary bzw. die zugehörigen Libraries übersetzt, sagen, ob man alle Aufrufe abgefangen hat. Wenn nicht, lässt sich der Code nicht vollständig übersetzen. Ob man das Resultat nun nativ nennen mag sei mal jedem selbst überlassen. Vom Prinzip her verspreche ich mir von dem Ansatz mehr als mit Wine. Man darf aber nicht vergessen, dass in Wine bereits Jahrzehnte Entwicklung stecken.
Und zum Thema "Wie soll direct3d nativ auf opengl ausgegeben werden?": Eben diese Direct3D Aufrufe werden bereits zur Compile-Zeit umgewandelt. DirectX und OpenGL machen ja im Prinzip das gleiche, nur mit anderen Schnittstellen, die sich mal mehr, mal weniger ähneln. Ob dahinter dann OpenGL oder etwas vielleicht noch grundlegenderes liegt, dass direkt auf die Grafikkarte geht wissen wohl nur die Jungs und Mädels von VP allein. Wenn es sauberes OpenGL wäre würde sich Witcher 2 auf Linux wohl auch auf AMD-Karten ausführen lassen.

So, Senfglas wieder zu!

PlayX
Bild des Benutzers PlayX
Offline
Beigetreten: 04.07.2008
Beiträge: 301

@bloodyroot dann wirst du doch sicherlich auch mal die seiten von virtual programming besucht haben oder? dort wird expleziet gesagt, dass man den sourcecode nicht braucht um die software zu portieren. also wird es wohl doch nur eine art wine sein. zwar kann man die arbeitsweise gut immer auf das jeweilige spiel anpassen, aber der grundgedanke bleibt doch der selbe.

"It is also possible to deliver a Windows-based game to these platforms without source code"
was sicherlich bei Spielen oft der fall sein wird, denn ich weiß nicht in wie weit z.b. Irrational Games Zugriff auf den UE3 Source hat (das war ja je nach Lizens unterschiedlich) und ob man diesen Sourcecode, wenn man ihn hatte, an eine weitere Firma weiter geben darf.

bloodyroot
Bild des Benutzers bloodyroot
Offline
Beigetreten: 24.10.2008
Beiträge: 81

@PlayX: Ich hatte nur die Forenbeiträge durchgelesen, sorry. Hab ich gerade nachgeholt und das was auf der HP steht ist für mich allerdings ein Widerspruch zu den Aussagen im Forum. Wenn eON ohne den Sourcecode des Spiels auskommt dann ist da gar nichts nativ. Da steht z.B. "It is a fully native implementation of essential Windows technologies (such as Direct3D)..." Ja super, Wine ist auch nativ, nur eben nicht die Programme die damit zum Laufen gebracht werden.

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 3433

@bloodyroot @playx nun ja, über Begrifflichkeiten kann man sich ja immer schön streiten. Ich wette, dass sie die plattformspezifische Schicht (nämlich der OS X oder Linux-Anteil) natürlich nativ machen und den rest dann anbinden, so wie es WINE halt ja auch macht. Schon braucht man den Quellcode nicht und ist nativ, toll :-D

mcflyle
Bild des Benutzers mcflyle
Offline
Beigetreten: 13.04.2012
Beiträge: 280

Danke für den Einblick. Na aber die beschränkte Nutzung von nur bestimmten DirectX-Sachen und MS-libs, anstatt alles abzudecken, sollten schon für eON sprechen. Aber etwas mehr Detailangaben wären sicher schön seitens VP. Wine-Ressourcen scheinen sie aber nicht zu benutzen, sonst müssten sie ja ihren code auch wieder einsehbar machen.

Wobei playonlinux mit seinen spielespezifischen Startscripten für wine, dann im Prinzip nichts anderes macht, nur für alle einsehbar ;) Für den Nutzer ist eON natürlich praktischer, ich hab zum Beispiel bis zu dieser Diskussion gar nicht die Technik hinter Witcher2 mitbekommen. Es ging einfach und auf meiner alten Kiste auch ausreichend performant. Ich fühl mich jetzt trotzdem irgendwie überrumpelt. Hab mein aktuelles System eigentlich wine-frei gehalten und nun nutzt wer anders MS-Krams ohne mich zu fragen :)

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 3433

Dann klick bloß nicht auf diesen Link ;-)

mcflyle
Bild des Benutzers mcflyle
Offline
Beigetreten: 13.04.2012
Beiträge: 280

Mach den link mal nicht mit httpS, da kommt eine Warnung und mein Firefox nutzt anschließend eine Systemseite ;-) Aber ich hab holarse mal als vertrauenswürdig gespeichert, nett wie ihr alle seid.

PS: In der Liste fehlt übrigens noch dieses Limbo, oder ist das inzwischen nativ? Und wenn es BG2 betrifft, doch bestimmt auch die icewind dale Spiele.

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 3433

Limbo wurde von Icculus portiert. Ich glaub es gab nur mal eine schnelle Wine-Port in einem Bundle.

Vigeland
Bild des Benutzers Vigeland
Offline
Beigetreten: 16.11.2010
Beiträge: 310

Limbo war anfangs nur ein Wine-Port, aber ist seit Mitte letzten Jahres nativ. Ist also zurecht nicht mehr auf der Liste :)

titi_son
Bild des Benutzers titi_son
Offline
Beigetreten: 27.03.2012
Beiträge: 142

Also es kann mir keiner von euch erzählen das Bioshock infinte schlecht läuft.
Das läuft so dermaßen gut. Ich hatte zum Beispiel mit Deadfall Adventures sehr viel mehr Probleme, obwohl das ja nativ ist.
Ich hatte kein einzigen Absturz. (bis jz 72 Spielminuten)

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 3433

Es geht um die Politik, nicht um die Technik, Titison.

PlayX
Bild des Benutzers PlayX
Offline
Beigetreten: 04.07.2008
Beiträge: 301

@titi_son
kommt sicher immer auf den einzelfall an. performance ist bei mir auch recht gut aber sporadische abstürze kommen bei mir schon vor. länger als ne stunde geht meistens nicht bevor es abschmiert, konnte auch noch nicht raus finden woran es liegt. mal direkt beim level laden, mal mitten im spiel

bloodyroot
Bild des Benutzers bloodyroot
Offline
Beigetreten: 24.10.2008
Beiträge: 81

Mein System ist zwar nicht mehr akutell, das Spiel ansich läuft aber recht flüssig. Mein Problem ist, dass die Cutscenes mit der Zeit immer langsamer werden und irgendwann bei etwa 0,001 fps angekommen sind.

andreas
Bild des Benutzers andreas
Offline
Beigetreten: 07.06.2010
Beiträge: 92

Huhu ;) probier mal die Lichtstrahlen in den Optionen abzuschalten bei mir hat das dann geholfen.

bloodyroot
Bild des Benutzers bloodyroot
Offline
Beigetreten: 24.10.2008
Beiträge: 81

@andreas: Vielen Dank! Jetzt laufen auch die Cutscenes rund!