lian / msfs2020-go

connect to microsoft flight simulator 2020 using golang
MIT License
389 stars 57 forks source link

vfrmap.exe doesn't work by default on Steam/Linux #79

Open darwinte opened 2 years ago

darwinte commented 2 years ago

When running it on Steam/Linux, it gives the following error:

~/Downloads > wine vfrmap.exe
002c:fixme:winediag:LdrInitializeThunk wine-staging 6.22 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
00e8:fixme:advapi:RegisterEventSourceW ((null),L"AdobeARMservice"): stub
00e8:fixme:advapi:ReportEventW (CAFE4242,0x0004,0x0000,0x00000000,00000000,0x0001,0x00000000,0187FC6C,00000000): stub
00e8:fixme:advapi:DeregisterEventSource (CAFE4242) stub
011c:fixme:process:SetProcessPriorityBoost (FFFFFFFFFFFFFFFF,1): stub
011c:fixme:powrprof:PowerRegisterSuspendResumeNotification (0x00000002,0000000000B5FD00,0000000000B5FCE8) stub!

msfs2020-go/vfrmap
  readme: https://github.com/lian/msfs2020-go/blob/master/vfrmap/README.md
  issues: https://github.com/lian/msfs2020-go/issues
  version: v0.0.7 (2020-09-05_04:33:49)

panic: SimConnect_Open error: -2147467259 Success.

goroutine 1 [running]:
main.main()
        /users/lian/prj/go/lian/msfs2020-go/vfrmap/main.go:115 +0x2125

How to fix:

  1. Edit SimConnect.xml:

~/Downloads > locate SimConnect.xml /mnt/disk/home/user/.local/share/Steam/steamapps/compatdata/1250410/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft Flight Simulator/SimConnect.xml

Set port from default of 500 to 2222:

<?xml version="1.0" encoding="Windows-1252"?>

<SimBase.Document Type="SimConnect" version="1,0">
    <Descr>SimConnect Server Configuration</Descr>
    <Filename>SimConnect.xml</Filename>
    <SimConnect.Comm>
        <Descr>Static IP4 port</Descr>
        <Protocol>IPv4</Protocol>
        <Scope>local</Scope>
        <Port>2222</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
    <SimConnect.Comm>
        <Descr>Static IP6 port</Descr>
        <Protocol>IPv6</Protocol>
        <Scope>local</Scope>
        <Port>501</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
    <SimConnect.Comm>
        <Descr>Custom Pipe</Descr>
        <Protocol>Pipe</Protocol>
        <Scope>local</Scope>
        <Port>Custom\SimConnect</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
    <SimConnect.Comm>
        <Descr>Dynamic IP4 port</Descr>
        <Protocol>IPv4</Protocol>
        <Scope>local</Scope>
        <Port>0</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
    <SimConnect.Comm>
        <Descr>Dynamic IP6 port</Descr>
        <Protocol>IPv6</Protocol>
        <Scope>local</Scope>
        <Port>0</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
    <SimConnect.Comm>
        <Descr>Default FSX Pipe</Descr>
        <Protocol>Pipe</Protocol>
        <Scope>local</Scope>
        <Port>0</Port>
        <MaxClients>64</MaxClients>
        <MaxRecvSize>41088</MaxRecvSize>
    </SimConnect.Comm>
</SimBase.Document>
  1. Use the following SimConnect.cfg and placed it in the same directory as vfrmap.exe
~/Downloads > cat SimConnect.cfg 
; Example SimConnect client configurations

; new FS pipe
[SimConnect]
Protocol=IPv4
Address=127.0.0.1
Port=2222
;Protocol=Pipe
;Port=2222
;Address=.

; Automatic detection, backward compatible with FSX
[SimConnect.1]
Protocol=IPv4
Address=127.0.0.1
Port=2222

[SimConnect.2]
Protocol=Ipv6
Port=2222
Address=127.0.0.1

[SimConnect.3]
Protocol=Ipv4
Address=127.0.0.1
Port=2222

; default FSX pipe
[SimConnect.4]
Protocol=Pipe
Address=.
Port=2222

; global pipe, use the configuration of the remote server
[SimConnect.4]
Protocol=Pipe
Address=.
Port=2222

; global IPv6, use the configuration of the remote server
[SimConnect.5]
Protocol=IPv6
Address=127.0.0.1
Port=2222

; global IPv4, use the configuration of the remote server
[SimConnect.6]
Protocol=IPv4
Address=127.0.0.1
Port=2222
  1. Optionally, enable developer mode in MSFS 2020, install MSFS SDK, and copy SimConnect.dll to the same directory as vfrmap.exe:

~/Downloads > cp ~/.wine/drive_c/MSFS\ SDK/SimConnect\ SDK/lib/SimConnect.dll ~/Downloads

darwinte commented 2 years ago

Also Microsoft Flight simulator in-flight game must be running already before running vfrmap.exe.