Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux porting #350

Open
4 tasks
zelytra opened this issue Nov 18, 2024 · 3 comments
Open
4 tasks

Linux porting #350

zelytra opened this issue Nov 18, 2024 · 3 comments

Comments

@zelytra
Copy link
Owner

zelytra commented Nov 18, 2024

Description of needs

Make BetterFleet work on Linux distributions. This feature is not in development (yet) and is still in discussion

Tasks

  • Generate Linux image with SOT running on it to test @zelytra
  • Tauri adaptation to generate Linux installer @zelytra
  • CI/CD adaptation to handle Linux release @zelytra
  • Change the method to retrieve UDP connection on Linux distro @dadodasyra

Notes

This issue may be splited into multiple MR

@zelytra
Copy link
Owner Author

zelytra commented Nov 27, 2024

Problem:

When SoT is run under Wine, the wineserver process manages the emulated network stack instead of the game process itself. This complicates determining the specific network port and traffic associated with the game.

Current Method:

  1. Use netstat to identify the UDP port wineserver is listening on:

    netstat -4panu | grep wineserver

    Example output:

    udp 0 0 0.0.0.0:32796 0.0.0.0:* 31538/wineserver
    
  2. Use a packet capture tool (e.g., ngrep) to monitor traffic on the identified port:

    sudo ngrep -W single -d any udp and dst port 32796

    Example output:

    U 172.166.255.146:30401 -> 192.168.1.11:32796 [network frame]
    
  3. The need for root permissions to capture packets with tools like ngrep is noted as a limitation.

Challenges:

  • Wineserver handles all network-related tasks, so determining which wineserver instance corresponds to the specific game process can be ambiguous if multiple wineservers are running.
  • The process requires administrative privileges for packet capture, which may not always be ideal.
  • There's a potential for a less specific solution due to Proton's reliance on Wine.

Context:

  • Sea of Thieves is available on Windows via two platforms: Steam and the Xbox app. The Xbox app version relies on Microsoft Store DRM, making it incompatible with Linux.
  • The Steam version is the only viable option, as it runs with Proton/Wine for Windows-to-Linux compatibility.

Next Steps:

The author suggests exploring Wine documentation to determine if there's a way to link a wineserver to a specific Wine process. Additionally, they note that requiring administrative privileges for packet capture is also the norm on Windows. The discussion leans toward refining the solution for better specificity while acknowledging that the current approach is functional.

@dadodasyra
Copy link
Collaborator

Is it still a thing since linux doesnt even runs the game but emulate it under windows ?

@zelytra
Copy link
Owner Author

zelytra commented Jan 2, 2025

Here may be players on this platform even though the game was not originally designed for it. This issue can remain open in case the developer who offered to handle it revisits the matter or if other individuals become interested. In any case, we will keep a record of this issue for potential future porting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants