Hard Drive Full: Decluttering

Good Morning from my Robotics Lab. This is Shadow_8472, and today I’m finishing off my move from Manjaro to EndeavourOS. Let’s get started!

About Last Week

14 hours. That’s how long it took for a proper fix to Space Engineers after I posted my attempt at a high-quality walkthrough for the workaround. I feel humbled, but in a good way. Someone at Keen, the game’s studio, took the time to fix a Linux problem for a Windows game. There’s also been some other good news I’d talk more about if I understood it, but the gist is that there are people working to optimize Space Engineers’ Linux experience.

Clearing Space on Manjaro

The big push this month has been to prepare EndeavourOS for daily use and make sure it’s stable in case I need a full reinstall. With NVIDIA drivers sorted and Space Engineers well-established, it’s time to move more stuff over. These last two posts were especially important to me, so I took the extra time with them. Now, I’m back at my original endgoal: Manjaro running again.

My Manjaro installation is so full, it can finish its update – or even log in anymore. Space Engineers is a big game, so I’m uninstalling it from there. I moved over my save data and reviewed it briefly in case I ever want to see my old creations.

“Easy Diffusion” basically takes care of itself, so while it had to [re]download some files to get going again, it was an easy 12gb to free. While I was at it, I added a new model I’ve been looking at. It was as simple as download and place in the right directory as directed (see Easy Diffusion’s help section for links).

With those offloaded, I easily booted Manjaro to apply several hundred updates amounting to a non-trivial download time. I now have a working backup OS on my Upstairs Workstation again.

Takeaway

There is more to life than big projects all the time. There will always be more to hand craft. I am thankful that my computer is usable.

Final Question

What is your idea of an “off week” project?

I Put Space Engineers on Linux (Again)

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am offloading Space Engineers from Manjaro to EndeavourOS. Let’s get started!

Short Answer

I used Glorious Eggroll’s 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 “GAME UPDATE!!!” down below.

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.

Background

This is a follow up/update to both last week –where I finish moving into a new EndeavourOS installation– 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.

I know what I’m doing a little better this time around. I even got it working first try. But that doesn’t 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.

The Dotnet Tradeoff

In more recent days, a member of the community going by G3ckobot on the developers’ 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 “G menu” for selecting blocks for your hotbar.

Crashes aren’t the only change I’ve noticed improvements with. The main menu plays videos like it’s supposed to. “Inventory Full” doesn’t self-overlap or cut off. Even “Exit to Windows” doesn’t throw a crash anymore. On the topic of miscellaneous bugs, there’s a new hint of static sometimes when I finish welding something.

A Note About Ship Blueprints

I’ve 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 – 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.

Like with any long-file path file transfer, my first move was to explore the destination directory.

/home/shadow/.steam/steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Blueprints/local/

When I navigated to the counterpart on Manjaro, I found myself in the exact, same place. I even made a file using the touch 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’s 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.

GAME UPDATE!!!

The AI update arrived this week, and my installation broke after I was all but done writing.

Missing prerequisites
There is missing required C++ package.
You have to accept elevation dialogs from the
Steam to install prerequisites.

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]:

HERE'S THE WORKAROUND
1. Install and run protontricks
2. Navigate to SE > default prefix > regedit
3. Under HKLM\SOFTWARE\Classes\Installer\Dependencies, create Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14

Community consensus was that an unused dependency was listed last-minute –perhaps accidentally– that wasn’t commonly included in Proton. Since the dependency isn’t actually called, it’s OK to add a fake entry in the prefix’s registry. How to get that fake entry in there can get tricky.

How to use Winetricks instead of Protrontricks

Protontricks is a version of Winetricks geared for managing Proton prefixes instead of Wine prefixes. Protontricks is in AUR but didn’t 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 “default” prefix. Note: I heard good things about Proton Experimental, so I switched to it from Glorious Eggroll.

AUR: Arch User Repository

cd ~
mv .wine .wineDISABLED
ln -s .steam/steam/steamapps/compatdata/244850/pfx .wine
cd .wine

Errors about .wine and “No such file or directory” can be ignored. It just means you don’t 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.

If everything is good so far, It is a very good idea to back up your prefix if you aren’t working with a clean one or wish not to redownload it.

cp ~/Full/Proton/Path ~/.SEbackup

Ensure both Space Engineers and Steam are closed. Start Winetricks. Select “Select the default wineprefix.” The link you created and tested earlier will fool Winetricks into looking at Space Engineers’ prefix. Click OK.

Next, select “Run regedit” and hit OK.

Navigate in the registry editor to HKEY_LOCAL_MACHINE\Software\Classes\Installer\Dependencies.

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.

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!

rm .wine
mv .wineDISABLED .wine


Takeaway

I’m 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’s 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’m adding the other key manually. I don’t expect anything to change, but as opekope2 pointed out to me, “Because that’s how it is on Windows,” [3].

* Microsoft.VS.VC_RuntimeAdditionalVSU_amd64,v14 and Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v14

Final Question

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].

As always, I look forward to hearing about your experience.

Works Cited

[1]. GloriousEggroll, “proton-ge-custom,” github.com, [Online]. Available: https://github.com/GloriousEggroll/proton-ge-custom [Accessed Apr. 17, 2023].

[2]. Shadow_8472, “Space Engineers: WINE Is Not an Emulator” letsbuildroboticswithshadow8472 Jan. 18, 2021. [Online]. Available: https://letsbuildroboticswithshadow8472.com/index.php/2021/01/18/space-engineers-wine-is-not-an-emulator/ [Accessed Apr. 17, 2023].

[3]. Keen Software House, “Linux” [Discord]. Available: https://discord.gg/keenswh [Accessed Apr. 17, 2023].

How to Install NVIDIA Drivers on EndeavourOS: Easy

Good Morning from my Robotics Lab! This is Shadow_8472 and today I am fixing/installing NVIDIA drivers on my Upstairs Workstation’s EndeavourOS installation. Let’s get started!

Short Answer

EndeavourOS has an NVIDIA installation script in the repository. It worked beautifully with my GTX 970, but I gather I am on the older side.

sudo pacman -S nvidia-inst
nvidia-inst

See the official EndeavourOS site for more information: https://discovery.endeavouros.com/nvidia/new-nvidia-driver-installer-nvidia-inst/2022/03/ [1].

Project Background

To my readers installing NVIDIA: I bid you good luck and look forward to hearing about your experience. I found precious few relevant search results about this topic aside from EndeavourOS’s admittedly confusing site, and my hope is that I’ve pointed you in the correct direction. If that doesn’t work, I have another of their articles in my Works Cited.

For my regular readers: wow. I don’t have many first attempt projects. Granted, this is technically a well-researched second attempt. One draft only had 100 words between title, introduction, and delivery (down to 75 in this cut, according to LibreOffice Writer). For now, I am thankful I didn’t have to learn what all the hype is about firsthand over installing NVIDIA on Arch .

EndeavourOS went on very smoothly earlier this year until after I installed Steam. My boot sequence would then stop updating where it normally hands over operations to the graphical server. The community helped me trace the problem to repository-installed drivers. I had to use the camera from the lab’s photo booth for pictures of TTY terminals. I let the project go dormant for a month while I focused on Nextcloud, but then Manjaro filled up its hard drive again while updating, and I was out of stuff to offload. (After I finished research this week, I installed Filelight and noticed several unused Proton versions taking up space.)

Listed in EndeavourOS’ features is “Nvidia installer.”

“A terminal-operated app that lets you easily install the right Nvidia driver and/or hybrid set-up required for your machine” [2]

Every other item on this feature list came pre-installed. Over the course of a couple late-night hours, I learned first about an older script called nvidia-intro. It reportedly works with cards made around 2010 and newer, such as the GeForce 930 [3]. I bounced around among what forum offerings my search turned up before settling on the link I shared from the start. Once installed, it was completely automatic. It needed a root password for installation proper, but the script itself does not run as root.

Takeaway

Normally, I would have combined this and next week’s similarly short topic since I am again working on my Upstairs Workstation. However, thinking about it from the perspective of someone searching online for help, it makes the most sense to split them.

Final Question

Have you done battle to install video drivers? I would like to hear about it in the comments below or on my socials.

Works Cited

[1] Manuel, “New Nvidia driver installer, nvidia-inst,” endeavouros.com, March 31, 2022. [Online]. Available: https://discovery.endeavouros.com/nvidia/new-nvidia-driver-installer-nvidia-inst/2022/03/ [Accessed April 10, 2023].

[2] B. Poerwoatmodjo, J. Kamprad, and Manuel, EndeavourOS, “Welcome to EndeavourOS”endeavouros.com, [Online]. Available: https://endeavouros.com [Accessed April 10, 2023].

[3] Joekamprad, “Nvidia intro,” endeavouros.com, Mar. 9, 2021. [Online]. https://discovery.endeavouros.com/nvidia/nvidia-intro/2021/03/ [Accessed April 10, 2023].

Autism Month: Container Analogy

Good Morning from my Robotics Lab! This is Shadow_8472, and I have a very special post this week where I explain what it’s like for me living with Autism and meltdowns. Let’s get started!

Preamble

I struggle with Autistic meltdowns. As early as I can remember, I’ve been asked why I behave certain ways (usually as punishment for misbehavior perceived to be intentional), and just as long, I’ve been coming up with different –sometimes contradictory– explanations of my mental processes. Few were memorable except possibly a school essay circa around 2008-2009 comparing myself to a squishy energy ball with situationaly dynamic properties.

My analogies grew in complexity as I tried to build one unifying theory. It grew so many rules neither I nor anyone else could keep everything straight for a predictable model of my reactions. I could be fine after a loud noise one day and in terrible pain from a quieter one the next. In self-preservation, I would sometimes force myself into the worse reaction to afford others’ understanding when I needed it.

Then one evening in or around 2016 (wild guess), I penned the first draft of my container analogy as a frustrated message to a long-time friend over Discord who had sent me into a bad meltdown. It overflowed the 2,000 character limit, comparatively grew into a Calculus-grade explanation of how the rules change to my previous brute-force, Algebra-like rule sets, and was ultimately never sent after pending review by a trusted family member in case it was too hot a take. Instead, I put it into a document which had my entire Autism support group nodding, impressing our psychologist, who encouraged me into researching how to copyright it.

Since then, I’ve re-imagined it a time or two, and I’m ready to share it as part of Autism Month. If you or someone you know is on or is a caregiver for a member of the Autistic spectrum, it is my hope and prayer that this analogy can be a tool of healing and understanding.

Container

If I were to ever depict the control room of my brain, it would feature a container with an inlet and an outlet – a buffer between all incoming sensory information and my ability to process it. When fluid arrives faster than it can drain, the level rises and will eventually overflow in a chain reaction known as a meltdown, where all the fluid is spilled across the floor of BrainHQ. Higher thought processes –including evaluation of probable consequences– are impeded as base instincts attempt to clean up.

Processing generally happens over time, but a particularly suitable environment can reduce the amount of incoming fluid, freeing up resources for additional processing capacity. A meltdown in progress can go from raging to manageable simply by retreating to a designated space.

The most important difference about this container is its dynamic and invisible volume. Only its relative fullness, processing speed, and state of meltdown are known by its owner at any given time. By mentally tracking how full it’s been over time, its current capacity can be estimated. Involuntary or uncontrolled meltdowns dramatically shrink the container’s capacity to the point where even small stimuli can instantly overflow a post-meltdown container. Similarly, the expectation and execution of a particularly good time or special event can expand the container’s capacity to temporarily cope with volumes a neurotypical brain automatically can filter through.

A trigger is a stimulus that fills this container more than it should – either when compared to similar stimuli or had the same stimulus been experienced by most anyone else. One or two large ones can easily “trigger” a meltdown. Small, normally ignorable triggers in rapid succession can leave fluid sloshing around for subsequent triggers to splash fluid out of the container, causing a meltdown over several otherwise nothings.

In one unpublished telling of this analogy, I visualized the container and fluid as a barrel with apple cider so as to relate to a fictional character of mine I was role playing against an avatar of myself in a story format. In one scene, the cider spoiled, soaked into the wood of the barrel, and leached back into future thought processes at semi-random intervals. These echos are a particularly nasty kind of trigger where each echo comes back as an individual trigger joining its all its previous peers at once for an amplified effect. Individual instances generally fade over time, but re-exposure to memorable triggers has a way of inciting instant recall.

Strategies

Everything brought up so far has been passive. You can’t expect me to scrub toilets and tell me to have a mindset of going on vacation to cope. That doesn’t mean there aren’t things to do to optimize the container’s performance.

The container has some elasticity. When needed, it can be stretched, but extra fluid has to be dealt with as maximum capacity rebounds below normal. This holds true for both big, stimulating event as well as when a meltdown would be obviously and immediately dangerous, like while driving. Overuse of this strategy can damage the container’s maximum capacity long-term.

Opposite the first strategy is to prematurely trip a controlled meltdown-like state where some input is ignored as a triggering stimulus passes by. This can be as mild as mentally blanking out a loud car as it passes to full-on turtle mode, where all input bypasses the container and gets dumped. A sampling of random input can be retained to determine if it’s safe to bounce out, but the better the sample, the less effective the bypass strategy will be.

Sometimes, more fluid is expected than will ever fit or can be bypassed. This is when clumsy base impulses in charge of cleanup seize the controls meant for the higher functions now stepping back into a bunker. Senses –though heightened– aren’t as immediate a concern as the autopilot guides a melted individual to safety. This perceived degree of separation feels similar to controlling a video game character or navigating a choose-your-own-adventure style dream. Consequences are still harder to conceive of, but the higher functions have a veto in this mode if the path of least resistance is reasoned to be more dangerous than wading through the trigger-infested fluid.

The last strategy is a cry for help. Petition another person for aid. Depending on the situation or individual, it may be as simple as explaining the situation verbally with words to as vague as acting “off” for someone to notice and ask. Embellishment may be used sparingly to convey a sense of magnitude or urgency, but over-outlandish comparisons run the risk of rejection.

Extensions

I’ve tried to integrate as much of my analogy into a single narrative as possible, but I’ve found it to be easily extendable. Even so, some details don’t fit in well elsewhere.

Fluid spilled in a meltdown –if not cleaned in a timely manner– will harden and take even longer to recover from.

There is a strategy called masking I personally am not a fan of relying on, but it works for some people: a foreign pattern of behavior is emulated using extra mental resources. Overuse leads to burnout.

Burnout is where the brain unwires potentially needed skills from speech to social skills to computer programs. Burnout may last anywhere from a day or two to long enough to re-learn the skills from scratch.

Another way to look at base instincts/impulses is as an idiot doppelganger at the brain’s controls. One of my notes from the cider version of this analogy visualizes this doppelganger as being made of spilled fluid. But it was competing with imagery of my character’s shadow separating out to wade through the fluid to operate the controls. I loved both illustrations so much, I couldn’t pick a single one, and eventually lost interest in the project. They may work in a fused for thoug.

Misconceptions

There is a distinction between triggers and meltdown vs anger and temper tantrums. The two sets may appear similar and occur concurrently, but one is a type of fight, flight, or freeze sequence, while the other is a basic human emotion driven by perceived injustice allowed to degenerate into bad behavior. This is why I have taken to making a distinction between triggers and Autistic triggers when talking with people outside my inner circle.

Autism is said to be a spectrum: no two people with it are the same. Once you’ve met one person with Autism, you’ve met one person with Autism, and the next one will be different. A stimulus or deprivation thereof may be soothing for one person and a supermassive trigger for another.

Takeaway

Autism is a lifelong challenge, but by the love and grace of God, my family loves each other. It breaks my heart knowing there exist members of the spectrum locked in a state of perpetual meltdown and masking as a matter of survival. The quality of life the Almighty has blessed me with I definitely would wish on those who would make assumptions about me based on their own experiences [particularly those with Autism], make hurtful or degrading judgments, and leave without a second thought. I believe this post has the potential to help.

Further Reading

Instead of a Final Question, I’d invite you to review a couple pieces that have been influential in my journey with Autism.

The first is a book: Managing Meltdowns: Using the S.C.A.R.E.D. Calming Technique with Children and Adults with Autism by Deborah Lipsky and Will Richards. I haven’t read it for myself, but I found even the outline, and chapter summaries to be powerful tools to compliment my understanding of what goes in within my own mind.

The second is a video by YouTuber Mark Rober: The Truth About my Son. In it, he has a vivid demonstration in a park about life without filters. Even in the relatively low-stimulus environment of my own home, I have distractions I have to purposefully ignore. The computer fan beside me is making a constant sound, the sound of the keys as I type, the slight squeaks of my decently lubricated chair – occasional noises from upstairs as a Star Trek episode finishes up, my dog vibrates the room with his snoring if he’s not looking up at me, my cat keeps coming around to visit, there’s a vacuum cleaner sitting by my desk I sometimes rest my foot on. Even the fabric of my shirt is registering.

I look forward to discussing this topic in the comments below or on my Socials.