{"id":1213,"date":"2023-04-17T12:00:00","date_gmt":"2023-04-17T19:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=1213"},"modified":"2023-04-18T02:04:31","modified_gmt":"2023-04-18T09:04:31","slug":"i-put-space-engineers-on-linux-again","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/04\/17\/i-put-space-engineers-on-linux-again\/","title":{"rendered":"I Put Space Engineers on Linux (Again)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab! This is Shadow_8472, and today I am offloading Space Engineers from Manjaro to EndeavourOS. Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Short Answer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I used Glorious Eggroll\u2019s community version of Proton [1], but the AI update this past week and now requires a blank registry key or two added to its prefix. See the section titled \u201cGAME UPDATE!!!\u201d down below.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EDIT 4-18-2023: The development team just released a Hotfix in update 1.202.067 fixing the issue. 2\/3 of my post is out of date only 14 hours after publication.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Background<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is a follow up\/update to both last week \u2013where I finish moving into a new EndeavourOS installation\u2013 and a post I wrote on January 18, 2021 [2], where I installed Space Engineers on Manjaro Linux and go into some detail about WINE, Proton, and the lengthy struggle I went through to install it there without fully understanding what I was doing. In case the specifics help anyone, I am running Space Engineers 1.201.014 default (Most Wanted update) on Glorious Eggroll GE-Proton7-54 on EndeavourOS with an Nvidia Geforce 970 graphics card.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I know what I\u2019m doing a little better this time around. I even got it working first try. But that doesn\u2019t mean I understand how everything works inside. There was an update to Space Engineers some time after my 2021 post that introduced a bug related to the audio system that would crash the game after anywhere between 5 minutes to 2 hours (ballpark average of half an hour). I was never able to diagnose it beyond a since-forgotten Discord post noting that the crash is an audio-related bug, and that it can be fixed by ripping open the .exe to kill the sound system. I happen to like sounds, so I accepted it until I gradually stopped playing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Dotnet Tradeoff<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In more recent days, a member of the community going by G3ckobot on the developers\u2019 Discord (Keen Software House) identified this crash as related to dotnet48, which I was quite possibly using as it showed up in a guide I linked to on GitHub I tried to follow. In my new installation, I went straight for Glorious Eggroll, and while the trade-off, as G3ckobot put it, is worse performance, the improved stability using the default wine-mono is worth it. He also suggested disabling progression in world settings to fix some lag related to the \u201cG menu\u201d for selecting blocks for your hotbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Crashes aren\u2019t the only change I\u2019ve noticed improvements with. The main menu plays videos like it\u2019s supposed to. \u201cInventory Full\u201d doesn\u2019t self-overlap or cut off. Even \u201cExit to Windows\u201d doesn\u2019t throw a crash anymore. On the topic of miscellaneous bugs, there\u2019s a new hint of static sometimes when I finish welding something.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Note About Ship Blueprints<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019ve had one long-term goal while playing Space Engineers, and that is to perform a grand tour of the Solar System map before doing much else. I want to visit every planetary body once \u2013 even if just for a touch and go. My first attempt had a worker ship I was quite fond of designing, so I went to fetch it from my old save.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Like with any long-file path file transfer, my first move was to explore the destination directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/home\/shadow\/.steam\/steam\/steamapps\/compatdata\/244850\/pfx\/drive_c\/users\/steamuser\/AppData\/Roaming\/SpaceEngineers\/Blueprints\/local\/<br><br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">When I navigated to the counterpart on Manjaro, I found myself in the exact, same place. I even made a file using the <strong>touch<\/strong> command in one place and it showed up in the other! A closer inspection of my file path showed that ~\/.steam\/steam is actually a symbolic link. Symbolic links have no concept of being mounted into another file system, so when I followed it, I landed right back in EndeavourOS\u2019s copy of Space Engineers. It pointed to \/home\/shadow\/.local\/share\/Steam, which I had to manually follow. I had to look around to find ..\/steamuser\/Application\\ Data\/SpaceEngineers\/, but in the end, it imported just fine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GAME UPDATE!!!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The AI update arrived this week, and my installation broke after I was all but done writing.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">Missing prerequisites<br>There is missing required C++ package.<br>You have to accept elevation dialogs from the<br>Steam to install prerequisites.<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Within 20 minutes, I was the first one reporting it on Discord. The server went into a flurry of activity as community members pooled skills over the next four hours. A few facts were soon apparent: there are a lot of C++ packages, no logs were of help narrowing down the missing one, beta builds were working fine with Proton right up until the update dropped. I was busy with more important matters for most of it, but by the time I came back, user opekope2 posted [3]:<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><em><strong>HERE'S THE WORKAROUND<\/strong><\/em><br>1. Install and run protontricks<br>2. Navigate to SE &gt; default prefix &gt; regedit<br>3. Under HKLM\\SOFTWARE\\Classes\\Installer\\Dependencies, create Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Community consensus was that an unused dependency was listed last-minute \u2013perhaps accidentally\u2013 that wasn\u2019t commonly included in Proton. Since the dependency isn\u2019t actually called, it\u2019s OK to add a fake entry in the prefix\u2019s registry. How to get that fake entry in there can get tricky.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">How to use Winetricks instead of Protrontricks<\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p class=\"wp-block-paragraph\">Protontricks is a version of Winetricks geared for managing Proton prefixes instead of Wine prefixes. Protontricks is in AUR but didn\u2019t feel like installing anything from there properly. Instead, I made a symbolic link from ~\/.wine to my Proton prefix and told Winetricks to load the \u201cdefault\u201d prefix. Note: I heard good things about Proton Experimental, so I switched to it from Glorious Eggroll.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p class=\"wp-block-paragraph\">AUR: Arch User Repository<\/p>\n<\/div>\n<\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~<br>mv .wine .wineDISABLED<br>ln -s .steam\/steam\/steamapps\/compatdata\/244850\/pfx .wine<br>cd .wine<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Errors about .wine and \u201cNo such file or directory\u201d can be ignored. It just means you don\u2019t already have a default Wine prefix. If you get an error when trying to cd into .wine, that means you will have to find where Steam puts games on your distribution and change your file path accordingly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If everything is good so far, It is a very good idea to back up your prefix if you aren\u2019t working with a clean one or wish not to redownload it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cp ~\/Full\/Proton\/Path ~\/.SEbackup<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure both Space Engineers and Steam are closed. Start Winetricks. Select \u201cSelect the default wineprefix.\u201d The link you created and tested earlier will fool Winetricks into looking at Space Engineers\u2019 prefix. Click OK.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"592\" src=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1024x592.png\" alt=\"\" class=\"wp-image-1214\" srcset=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1024x592.png 1024w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-300x173.png 300w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-768x444.png 768w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image.png 1140w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next, select \u201cRun regedit\u201d and hit OK.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"592\" src=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1-1024x592.png\" alt=\"\" class=\"wp-image-1215\" srcset=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1-1024x592.png 1024w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1-300x173.png 300w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1-768x444.png 768w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-1.png 1140w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Navigate in the registry editor to HKEY_LOCAL_MACHINE\\Software\\Classes\\Installer\\Dependencies.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"249\" height=\"377\" src=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-2.png\" alt=\"\" class=\"wp-image-1216\" srcset=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-2.png 249w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-2-198x300.png 198w\" sizes=\"auto, (max-width: 249px) 100vw, 249px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">You the Classes folder is long. Once you scroll down to Installer and find Dependencies, you should see two keys with the folder icon (my screenshot already has the extra key). Bring up your context menu and make a New Key and name it Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14. Do not worry about adding a value.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"248\" src=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-3.png\" alt=\"\" class=\"wp-image-1217\" srcset=\"https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-3.png 760w, https:\/\/letsbuildroboticswithshadow8472.com\/wp-content\/uploads\/2023\/04\/image-3-300x98.png 300w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Space Engineers should start up now, but you may have to try a few times before you start\/load a game. My record is 4. After you confirm Space Engineers is working, be sure to remove ~\/.wine link and replace your original default wine prefix if you had one before!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rm .wine<br>mv .wineDISABLED .wine<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><br>Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I\u2019m no stranger to easy projects expanding on me, but this was dramatic! I tried to keep up with developments in this story until the night before publication. Opekope2\u2019s original workaround post is pinned and has been edited to include instructions for importing two keys* that will do the same job as editing the registry manually as demonstrated. As a personal experiment starting around the time this goes live, I\u2019m adding the other key manually. I don\u2019t expect anything to change, but as opekope2 pointed out to me, \u201cBecause that\u2019s how it is on Windows,\u201d [3].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">* Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14 and Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v14<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Have you gotten whatever latest update of Space Engineers running on Linux? If not, I highly recommend you engage with the community on Discord [3].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As always, I look forward to hearing about your experience.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Works Cited<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[1]. GloriousEggroll, &#8220;proton-ge-custom,&#8221; <em>github.com<\/em>, [Online]. Available: <a href=\"https:\/\/github.com\/GloriousEggroll\/proton-ge-custom\">https:\/\/github.com\/GloriousEggroll\/proton-ge-custom<\/a> [Accessed Apr. 17, 2023].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2]. Shadow_8472, &#8220;Space Engineers: WINE Is Not an Emulator&#8221; <em>letsbuildroboticswithshadow8472<\/em> Jan. 18, 2021. [Online]. Available: <a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2021\/01\/18\/space-engineers-wine-is-not-an-emulator\/\">https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2021\/01\/18\/space-engineers-wine-is-not-an-emulator\/<\/a> [Accessed Apr. 17, 2023].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[3]. Keen Software House, &#8220;Linux&#8221; [Discord]. Available: <a href=\"https:\/\/discord.gg\/keenswh\">https:\/\/discord.gg\/keenswh<\/a> [Accessed Apr. 17, 2023].<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab! This is Shadow_8472, and today I am offloading Space Engineers from Manjaro to EndeavourOS. Let\u2019s get started! Short Answer I used Glorious Eggroll\u2019s community version of Proton [1], but the AI update this past week and now requires a blank registry key or two added to its prefix. See &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2023\/04\/17\/i-put-space-engineers-on-linux-again\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;I Put Space Engineers on Linux (Again)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2,40],"tags":[225,227,37,39,36,35,228,226],"class_list":["post-1213","post","type-post","status-publish","format-standard","hentry","category-linux","category-space-engineers","tag-c","tag-dotnet","tag-linux","tag-proton","tag-space-engineers","tag-wine","tag-winetricks","tag-workaround"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=1213"}],"version-history":[{"count":4,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1213\/revisions"}],"predecessor-version":[{"id":1223,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/1213\/revisions\/1223"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=1213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=1213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=1213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}