LINUX SUPPORT IS HERE

Talk about general things concerning Forged Alliance Forever.

Moderators: FtXCommando, Ze Dogfather

Re: LINUX SUPPORT IS HERE

Postby Geosearchef » 31 Jan 2019, 12:21

Reaction is here. But I'm a bit confused by this currently as the "init.lua" file parameter is given to FA just that way without any decoration. Oh wait a second, you changed the launch parameter, didn't you?
Developer, Server Admin, ICE, currently working on Team Matchmaking, FAF Client
User avatar
Geosearchef
Contributor
 
Posts: 392
Joined: 18 Oct 2013, 14:08
Location: Germany
Has liked: 6 times
Been liked: 127 times
FAF User Name: Geosearchef

Re: LINUX SUPPORT IS HERE

Postby Geosearchef » 31 Jan 2019, 12:31

It would be interesting to see the working directory that is used to start /tmp/proton_t/run. I would need to see this log statement:
Code: Select all
logger.info("Starting Forged Alliance with command: {} in directory: {}", processBuilder.command(), executeDirectory);


Additionally, do you know what run does? Does it use the same working directory? Or does it change it? Telling from the code even when you change the launch command it will still read the working directory from the ForgedAllaince.exe. So I suspect the run binary/script from proton is at fault and simply doesn't keep the working directory. (I suspect this as launching using `/bin/bash -c "%s"` works for me (not using proton))

I've also created a small fix so the ForgedAlliance.exe is set to executable before launching. I'll take a look at all the other linux related issues as soon as I find some time.
Developer, Server Admin, ICE, currently working on Team Matchmaking, FAF Client
User avatar
Geosearchef
Contributor
 
Posts: 392
Joined: 18 Oct 2013, 14:08
Location: Germany
Has liked: 6 times
Been liked: 127 times
FAF User Name: Geosearchef

Re: LINUX SUPPORT IS HERE

Postby tatsu » 31 Jan 2019, 15:07

mod/admin delete this.
forum pooped it's pants.
Last edited by tatsu on 31 Jan 2019, 16:25, edited 1 time in total.
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: LINUX SUPPORT IS HERE

Postby tatsu » 31 Jan 2019, 15:09

mod/admin delete this.
forum pooped it's pants.
Last edited by tatsu on 31 Jan 2019, 16:25, edited 1 time in total.
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: LINUX SUPPORT IS HERE

Postby tatsu » 31 Jan 2019, 15:10

Geosearchef wrote:.

here's the content of my proton_t/run file. I didn't leave it under temp as it would be deleted, I moved it to Documents :
Code: Select all
#!/bin/bash
#Run game or given command in environment

cd "/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance"
DEF_CMD=("/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin/:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/bin:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-10.0.2/bin:/usr/bin/python:/usr/bin/gtags:/snap/bin" \
   TERM="xterm" \
   WINEDEBUG="-all" \
   WINEDLLPATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib64/wine:/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib/wine" \
   LD_LIBRARY_PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib64:/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib:/home/t/.steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/t/.steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/usr/local/lib:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib:/home/t/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/i386/lib:/home/t/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/lib:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib:" \
   WINEPREFIX="/home/t/.steam/steam/steamapps/compatdata/9420/pfx/" \
   SteamGameId="9420" \
   SteamAppId="9420" \
   WINEDLLOVERRIDES="d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;dxgi=n" \
   STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/t/.steam" \
   "/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin//wine" "${@:-${DEF_CMD[@]}}"


in faf my run directory says default. should I specify one?
Code: Select all
logger.info("Starting Forged Alliance with command: {} in directory: {}", processBuilder.command(), executeDirectory);

I looked in my terminal I can't see that line. I'll have to try again.
Code: Select all
/bin/bash -c "%s"


i'll try adding that in run.

EDIT : if I do that fa never starts (all types of play) and no errors
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: LINUX SUPPORT IS HERE

Postby foodlfg » 31 Jan 2019, 21:43

i don't really understand why the ForgedAlliance.exe needs to have its execute flag set.
it's just a parameter that is given to wine/proton. the program we run on linux is wine/proton not the ForgedAlliance.exe, linux cannot run win executables. also, we have SupremeCommander.exe outside the game directory too. what is its purpose? the clients launch the ForgedAlliance.exe via Wine/Proton not the SupremeCommander.exe.

also, what is ForgedAlliance.exe btw? who created this? is it the modded version of the original game executable?


As for the other stuff:
does the Downlord client log the actual launching command of the game with parameters and stuff'? i don't have it now, so i don't know. we need to log this (if it doesn't) to terminal at least. also the client should log the environment variables too (for example WINEPREFIX) along with directories it uses. we need things like this for debugging purposes and to compare different Linux configs.

see my findings here, how the Phyton client launches the game (+ sets the wineprefix)
viewtopic.php?f=2&t=4507&p=168203&hilit=python+client#p168203
Code: Select all
/usr/bin/wine "/home/test1/FAForever/bin/ForgedAlliance.exe" /mean 1156.92 /deviation 100.075 /init init_faf.lua /numgames 209 /log "/home/test1/FAForever/logs/game.log" /nobugreport /savereplay "gpgnet://localhost/8653094/foodlfg.SCFAreplay" /gpgnet 127.0.0.1:46433


it looks like the Run file sets the WINEPRERFIX btw.
from Tatsu's: WINEPREFIX="/home/t/.steam/steam/steamapps/compatdata/9420/pfx/"


looks promising!

meanwhile, i tested for what causes my game crashes, more info later :p
 
foodlfg
Avatar-of-War
 
Posts: 165
Joined: 17 Dec 2017, 19:28
Has liked: 22 times
Been liked: 69 times
FAF User Name: foodlfg

Re: LINUX SUPPORT IS HERE

Postby foodlfg » 31 Jan 2019, 22:14

tatsu wrote:
Code: Select all
#!/bin/bash
#Run game or given command in environment

cd "/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance"
DEF_CMD=("/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin/:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/bin:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-10.0.2/bin:/usr/bin/python:/usr/bin/gtags:/snap/bin" \
   TERM="xterm" \
   WINEDEBUG="-all" \
   WINEDLLPATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib64/wine:/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib/wine" \
   LD_LIBRARY_PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib64:/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/lib:/home/t/.steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/t/.steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:/usr/local/lib:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib:/home/t/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/i386/lib:/home/t/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/lib:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib:" \
   WINEPREFIX="/home/t/.steam/steam/steamapps/compatdata/9420/pfx/" \
   SteamGameId="9420" \
   SteamAppId="9420" \
   WINEDLLOVERRIDES="d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;dxgi=n" \
   STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/t/.steam" \
   "/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin//wine" "${@:-${DEF_CMD[@]}}"


I don't get this btw.
you give /tmp/proton_t/run "%s" to the client in the settings in your video.
but what the actual run file does is it sets bunch of environmental variables (good) AND starts vanilla SupremeCommander.exe using Wine (bad).
see these lines:
Code: Select all
DEF_CMD=("/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
...
"/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin//wine" "${@:-${DEF_CMD[@]}}"

so the faf client launches the run file, adds a bunch of parameters to it with "%s" (which don't do anything, thrown away i guess) then the run file launches the vanilla game?? oO
what we should do is to set the environment variables (located in the run file) in terminal before launching the Downlords client (this is what we did in the past with the WINEPREFIX variable for example) then give this to the client, in the settings: /home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin//wine "%s" (you can see here that Proton is using Wine btw)
what i'm concerned with is the cd command in the run file (do we need that?) and how ForgedAlliance.exe behaves in that Proton environment.
 
foodlfg
Avatar-of-War
 
Posts: 165
Joined: 17 Dec 2017, 19:28
Has liked: 22 times
Been liked: 69 times
FAF User Name: foodlfg

Re: LINUX SUPPORT IS HERE

Postby tatsu » 31 Jan 2019, 23:17

proton is a fork of wine, to be exact.

one of the two that was created after it's maintainer's threw in the towel. the other fork is maintained by lutris.

now the two will grow apart all the while being indistinguishable via the sheer amount of shared code.

I'm aware the useful parts of that run file could be taken out of that run file. I do no know though what it is precisely that sets it's contents apart from running it straight up in the terminal.

I will have to test. perhaps i can whittle it down and then I can simply put that in the args section of faf and not use that file anymore.

edit :

so here's what I already know is useless so far :


- all the files in proton_t except run.

-
Code: Select all
PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin/:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/bin:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-10.0.2/bin:/usr/bin/python:/usr/bin/gtags:/snap/bin"
this bit is just adding stuff to my environment variable, I can do that permanently in the real environment file.


I've tested around with the following settings :
(stealing wine path from STEAM_COMPAT_CLIENT_INSTALL_PATH )
Screenshot from 2019-01-31 22-39-59.png
Screenshot from 2019-01-31 22-39-59.png (49.64 KiB) Viewed 1847 times


and this runs FA but with a failure :

Screenshot from 2019-01-31 22-36-57.png
Screenshot from 2019-01-31 22-36-57.png (109.12 KiB) Viewed 1847 times


so it must mean another set of exported variable must be useful, testing ....

(not sure if this java stacktrace is relevant)
Code: Select all
java.io.FileNotFoundException: http://content.faforever.com/bireus/faf//info.json
   at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1909) ~[na:na]
   at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509) ~[na:na]
   at java.base/java.net.URL.openStream(URL.java:1117) ~[na:na]
   at com.fasterxml.jackson.core.JsonFactory._optimizedStreamFromURL(JsonFactory.java:1595) ~[jackson-core-2.9.7.jar:2.9.7]
   at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:793) ~[jackson-core-2.9.7.jar:2.9.7]
   at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2959) ~[jackson-databind-2.9.7.jar:2.9.7]
   at com.faforever.client.patch.BireusFeaturedModUpdater.canUpdate(BireusFeaturedModUpdater.java:57) ~[downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at com.faforever.client.patch.GameUpdaterImpl.updateFeaturedMod(GameUpdaterImpl.java:164) [downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at com.faforever.client.patch.GameUpdaterImpl.update(GameUpdaterImpl.java:79) [downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at com.faforever.client.game.GameService.updateGameIfNecessary(GameService.java:424) [downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at com.faforever.client.game.GameService.hostGame(GameService.java:226) [downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at com.faforever.client.game.CreateGameController.onCreateButtonClicked(CreateGameController.java:400) [downlords-faf-client-0.9.3-beta.jar:0.9.3-beta]
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
   at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
   at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76) [na:na]
   at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) ~[na:na]
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
   at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
   at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83) [javafx-fxml-11-linux.jar:na]
   at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1784) [javafx-fxml-11-linux.jar:na]
   at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670) [javafx-fxml-11-linux.jar:na]
   at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) [javafx-base-11-linux.jar:na]
   at javafx.event.Event.fireEvent(Event.java:198) [javafx-base-11-linux.jar:na]
   at javafx.scene.Node.fireEvent(Node.java:8879) [javafx-graphics-11-linux.jar:na]
   at javafx.scene.control.Button.fire(Button.java:200) [javafx-controls-11-linux.jar:na]
   at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206) [javafx-controls-11-linux.jar:na]
   at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) ~[javafx-controls-11-linux.jar:na]
   at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) ~[javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) [javafx-base-11-linux.jar:na]
   at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) [javafx-base-11-linux.jar:na]
   at javafx.event.Event.fireEvent(Event.java:198) [javafx-base-11-linux.jar:na]
   at javafx.scene.Scene$MouseHandler.process(Scene.java:3851) ~[javafx-graphics-11-linux.jar:na]
   at javafx.scene.Scene$MouseHandler.access$1200(Scene.java:3579) ~[javafx-graphics-11-linux.jar:na]
   at javafx.scene.Scene.processMouseEvent(Scene.java:1849) ~[javafx-graphics-11-linux.jar:na]
   at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2588) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) ~[javafx-graphics-11-linux.jar:na]
   at java.base/java.security.AccessController.doPrivileged(Native Method) ~[na:na]
   at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:390) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.glass.ui.View.handleMouseEvent(View.java:556) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.glass.ui.View.notifyMouse(View.java:942) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) ~[javafx-graphics-11-linux.jar:na]
   at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277) ~[javafx-graphics-11-linux.jar:na]
   at java.base/java.lang.Thread.run(Thread.java:844) ~[na:na]

2019-01-31 22:30:42.560  INFO 25683 --- [ool-2-thread-15] c.f.c.patch.GameBinariesUpdateTaskImpl   : Updating binaries to 3703
2019-01-31 22:30:42.574  WARN 25683 --- [lication Thread] c.f.client.relay.LocalRelayServerImpl    : Local relay server was already running, restarting
2019-01-31 22:30:42.575  INFO 25683 --- [lication Thread] c.f.client.relay.LocalRelayServerImpl    : Closing relay server
2019-01-31 22:30:42.578  INFO 25683 --- [ool-2-thread-18] c.f.client.relay.LocalRelayServerImpl    : GPG relay server listening on port 35481
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: LINUX SUPPORT IS HERE

Postby tatsu » 31 Jan 2019, 23:58

So yeah that method works, here's the end of my .bashrc now :

Code: Select all
export INSTALL4J_JAVA_HOME=/usr/lib/jvm/jdk-10.0.2
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss3.so
export DEF_CMD=("/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance/bin/SupremeCommander.exe")
export TERM=xterm
export WINEDEBUG=-all
export WINEDLLPATH=/home/t/.steam/steam/steamapps/common/Proton\ 3.16/dist/lib64/wine:/home/t/.steam/steam/steamapps/common/Proton\ 3.16/dist/lib/wine
export WINEPREFIX=/home/t/.steam/steam/steamapps/compatdata/9420/pfx/
export SteamGameId=9420
export SteamAppId=9420
export WINEDLLOVERRIDES="d3d11=n;d3d10=n;d3d10core=n;d3d10_1=n;dxgi=n"


my /ect/environment :

Code: Select all
PATH="/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin/:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/bin:/home/t/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-10.0.2/bin:/usr/bin/python:/usr/bin/gtags"
JAVA_HOME="/usr/lib/jvm/jdk-10.0.2"


FAF settings :

FA dir :
Code: Select all
/home/t/.steam/steam/steamapps/common/Supreme Commander Forged Alliance


command format for executable :
Code: Select all
"/home/t/.steam/steam/steamapps/common/Proton 3.16/dist/bin/wine %s"


execution directory :
Code: Select all
/home/t/faf


I suspect that a good portion of the above can still be sliced out with no consequence, the PATH additions for example, the "TERM" variable...

will have to test one by one.

I still get FA : "cannot read init_faf.lua: No such file or directory" on 1v1 though.

(in truth I actually got all of the above working but with "Proton" instead of "Proton 3.16", I renamed the folder in order to make FAF shut up about non found files. The machinations of how java FAF reads files paths in it's different boxes are an utter mystery to me, why it chooses to read as a character \ and interpret spaces despite surrounding quotemarks is beyond me. please do enlighten what syntax I should have used for the space in "Proton 3.16" to be recognized)
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

Re: LINUX SUPPORT IS HERE

Postby tatsu » 10 Feb 2019, 17:52

anyone have the above guide running? any clues for 1v1? it's weird that I could get it to work with wine but not with proton? there's something weird going on with file rights and the acknowledgment of their rights.
User avatar
tatsu
Supreme Commander
 
Posts: 1553
Joined: 02 Jul 2012, 21:26
Has liked: 1952 times
Been liked: 171 times
FAF User Name: tatsu

PreviousNext

Return to General Discussions

Who is online

Users browsing this forum: No registered users and 1 guest