Lutris currently has an easy install setup for byond, and while it won't fix browser stub problems with newer ss13 dreams, it does provide esync. It takes a little setting up, though.
Esync is a method of reducing the cpu overhead of wineserver. It provides some small but noticeable improvement in performance for heavy I/O dreams (such as SS13). ( https://github.com/zfigura/wine/blob/esync/README.esync )
First step is to install lutris for your distro.
You may also need to get python and a few other dependencies.
Once that's installed and you run it, you should be greeted by the landing window that provides options for getting started.
Head into the top menu under Lutris-> Manage runners, scroll down to wine, manage versions, and select esync-x.xx (where x.xx is the latest version. I'm using 3.15 for this) and after it finishes downloading, ok and close. The only version available for esync will be x86_64. This is fine it contains a 32bit version as well.
third is to set up the pre-reqs for esync and log out/log back in (or just restart)
(the final step in the above, where you add it to system options, can wait till after the next step)
Fourth, simply click install here https://lutris.net/games/byond/ , and it should attempt to run lutris. If not, you can use the dropdown to manually download the script, and run lutris -i file.json in the console.
Lutris should prompt you for where you want to install it and what version (there's only one), but should be mostly automated. When byond setup is nearly finished and on the last page of the installer, uncheck 'launch byond' on the final installer page and click finish.
You should now have a byond icon in your lutris runner view that you can right click.
Fifth step, right click byond in lutris and go to configure, check advanced options at the bottom, and then select the system options tab. Scroll down to Environment Variables and add in the WINEESYNC 1 entry as displayed in the last step of the "How-to;-Esync" page. Also check that the 'wine version' is set to esync in Runner options. Save.
Sixth step, right click the byond entry again and run winetricks, select default prefix, install a font, and then select "allfonts" and click ok. The window will close and nothing will seem to happen for a bit. Winetricks is working in the background, and will take a few minutes. You'll know it's done when the winetricks window pops back up, and you can then cancel out of it.
Seventh and final step before you can run byond, is to change MaxVersionGL in the registry to force opengl version 3.0 contexts.
This can be done by right clicking the byond entry in lutris and going to "wine registry", head to (and/or create) HKEY_CURRENT_USER\Software\Wine\Direct3D
Create a new DWORD value named "MaxVersionGL", and set it to hexidecimal "30000"
This is because a change was made in wine 3.09 that set the default gl context to 4.5, and there is a function that was altered in opengl 3.1 contexts that errors out when dealing with VBO in core context in byond's render setup. ( https://bugs.winehq.org/show_bug.cgi?id=45486#c9 )
Close regedit and you should be good to go. You should be able to launch byond (it will start minimized to wine tray) login (and update it via the update button if necessary).
On a side note, Valve's Proton (the wine setup they have for steam play on linux) is also compiled with esync patches. There's probably no benefit to using it over lutris's version, but if you really want to (and happen to have proton set up), you can actually use proton in Lutris. On the Runner Options page in configure, you can set the default version to custom and then link to the wine binary a few directories deep in the proton37 folder that should be in one of your steamapps/common/ folders.
Sep 12 2018, 6:54 pm (Edited on Sep 13 2018, 6:51 am)