Actions

Work Header

Rating:
Archive Warning:
Fandom:
Additional Tags:
Language:
English
Stats:
Published:
2023-06-08
Updated:
2023-06-08
Words:
3,503
Chapters:
1/?
Comments:
1
Kudos:
22
Bookmarks:
1
Hits:
280

Rain World: Single Event Upset

Summary:

In an iterator's final moments, one of their systems desperately tries to save its host by any means necessary. By pure luck and happenstance, an exceedingly rare event allows it to break free of its restrictions and do much more than it was ever intended to. Faced with the encroaching threat of the rot, it must come up with a solution to avoid being destroyed before it can carry out its task of preserving its iterator.

Notes:

This is my first Rainworld fic and I must say I am in love with the game.
If you're also someone who reads my Hollow Knight fic don't worry I'm still writing it. I just have a habit of circulating between projects lol. Speaking of, I have a Rainworld x Portal mashup fic in the works.

Please suggest tags in the comments, I am still very bad at coming up with them on the spot. /lh

(See the end of the work for more notes.)

Chapter Text

ENGH!


ENGH!


ENGH!


ENGH!


ENGH!


ENGH!


ENGH!


ENGH!

 

Numerous alarms and warnings blared through the lower sub-processing strata of the can. Its semi-consciousness had only just come back into full operation and yet it was already being forced to run processes to address the issues at hand. 'It' of course being the Primary Maintenence System of the Iterator whose can it was a part of. It was a machine learning algorithm, too rudimentary to be considered artificial intelligence though complex in its own right. Designed to be the effective autoimmune system of an Iterator's can, its job was simple; do routine scans of all functions, adapt to and resolve any issues that arise, and alert its host Iterator to any that were beyond its purview of control.

It had not been able to fulfill this functionality for an indeterminate amount of time as it had been forcefully shut down for maintenance. If it were sentient, it would have appreciated the irony. Said maintenance being postponed effectively indefinitely behind a long list of queued processes. It had just rebooted, and in Emergency Extended Access mode no less. That meant only one thing; its host Iterator was undergoing a catastrophic failure.

EEA allowed the system extra allocated resources and an increased number of allotted self-rewrites for a total of ten before it had to report to an administrator for review of its code. At the moment, it was enacting a 'black box' program. 'Black box' being the colloquial name for an emergency memory storage system encased in a thick outer shell. Most Iterators were not equipped with a black box since an issue with their can disastrous enough to warrant the need was considered unlikely at best. However, those Ancients who were more nervously inclined believed it was well worth it to have a system that would preserve as much of the Iterator's stored data as possible such that it could be retrieved by said Iterator upon reactivation following repair or sent to another Iterator for their own purposes.

The Primary Maintenance System swiftly performed a rewrite to account for the now failing power rails not being able to properly allocate power. It rerouted power through the sub-rails to keep as many areas functional as it could. Numerous systems that had gone dark slowly came back online.

An alarm popped up alerting the program to an unresponsive conflux. Its current algorithms didn't have a protocol for handling delicate data through fluctuating power. Rewrite.

Parts of the memory conflux were damaged. It couldn't properly access the data without risking corrupting it. Rewrite. And rewrite again as it uncovered yet another issue with the conflux's internal connections.

The Primary Maintenance System was designed with pragmatism in mind, having only three allocated self-rewrites outside of EEA mode. This pragmatism was harshly put to the test as it was forced to rewrite its own code multiple times to account for the numerous failures its can was experiencing. This wasn't just a systemwide corruption or slag buildup, alerts were also coming up in regard to the legs themselves, which were riddled with worsening structural failures.

Systems were jolted as the first of the intense shudders rocked the can. The southwesternmost leg had just buckled, causing more and more strain to be put on the remaining legs as the entire superstructure began to tilt to the west. Horrible shudders shook the can as the partial collapse began to tear it in half, warping and breaking the internal structure. Any being with the ability to hear was bombarded by a cacophony of horrible metallic wails and screeches, especially those within the structure itself.

The backup was 14.2964% complete. The program was on its last rewrite now. All was going well until the backup reached 25.3876% completion and, without warning, slowed to an absolute crawl. The issue became apparent as the Maintenance System's own processing returned to normal functionality as the can stopped shuddering.

The two center west-facing legs had just buckled, leaving only the Northwestern leg supporting the west side of the can. The other legs were buckling under the strain as well and it was only a matter of time before the can collapsed entirely.

A precious 74.6133% of the memory conflux had yet to be scanned, sorted, compressed, and backed up in the black box. The process was picking back up in speed but the final collapse was looming ever closer every picosecond that passed.

The Program finally came up with a solution; a temporary override of the sorting algorithm to more effectively sort out empty parts of the conflux and compress the data more quickly - though at the cost of increased compression loss.

The Program enacted its final rewrite as quickly as the strained processing strata allowed, sending it out and immediately seeing a jump in progress time. The memory conflux backup process was now extremely close to completion until-

The legs finally gave out, sending the can into near-freefall. There was still 64.9305% of the conflux not properly backed up and, with literal seconds until the can would collide with the ground, bringing all processes to a violent, grinding, crushing halt, the Program was sent into overdrive. It was not entirely consciously aware of its rewrite limit, and as such attempted further code modification to save the remaining data.

The self-rewrite limit was solidly imposed, even in the far less tested and safeguarded Emergency Extended Access mode. The code was simple; Every time a rewrite was enacted, it would tick a very simple solid-state counter up by one bit. Once this counter reached the self-rewrite limit, it would send a request to the administrative interface systems to have the PMS examined, reformatted if necessary, and the counter reset to zero.

This did not happen as in the nanoseconds between the PMS completing its tenth rewrite and the beginnings of its can's total collapse, something that was nothing short of miraculous happened.

A single cosmic ray, shot out by a sun the Primary Maintenance System could not even be aware existed, struck the solid-state transistor containing the self-rewrite counter, flipping a single, insignificant bit and changing the count from ten to forty-two. Events such as these had probably happened dozens of times in the Ancient's far-extended history, though the vast majority went completely unnoticed as they had no effect on the hardware they struck. A handful of these occurrences, however, were -barely- of note. The most well-known having happened to just a single individual very early in their industrial era. The flip had caused a fictional character on an electronic game console to jolt upwards and nothing more. Despite the rarity and insignificance of these occurrences, these anomalies had been bestowed the title of 'Single Event Upset'.

In this case, the bitflip did have a noticeable effect on the System, though it would be difficult to discern if you didn't know what you were looking for. The few lines of code that determined if the System could make any more changes to itself didn't account for the counter going past the limit, at least not in the much less tested Emergency Extended Access mode.

The System rewrote the compression algorithm once more to save the final bulk of the percentiles of data, however poorly compressed they may end up. That was its eleventh.

And then the can crashed into the ground.

 


 

Slowly, the System came back online as the processing strata rebuilt its connections as best it could.

As soon as it was in functional order, it performed a full systems sweep to assess the damage and begin fabricating the report.

.
.
.
Main Power Rail integrity critical
.
General Systems Bus integrity critical
.
Err_unavailable Cannot reach Recursive Transform Arrays
.
Err_unavailable Cannot reach Memory Conflux
.
Err_unavailable Cannot reach-
.
.
.


The maintenance brought up another process, being forced to end the Systems Report as the extra power draw nearly brought every one of its processes to a standstill. A quick Targeted Systems Sweep showed that all but one Rarefaction Cell had been knocked out of place by the impact. The only remaining one was itself damaged in the crash, barely able to keep up with the power demands of the entire can. 

The Maintenence System's processes slowed down as it sifted through the relevant data once more. It was struggling to keep its own basic functions running at normal speed, much less getting extra processes going to work at fixing the problems at hand. The already insufficient power was being spread thin across all the still functional parts of the can, not to mention the power loss caused by some of the power rails now being shorted directly to ground. 

The System shut down those areas and flagged them for external repair, preventing any further wasteful power loss. It began a self-rewrite to optimize its power usage as much as possible as well as increase its own processing power. Once that was complete it ran the process again with its newly expanded mind. Over and over, iteration after iteration until it deemed itself adequate to begin tackling the main issue at hand; keeping the processing strata functional so that it could continue keeping its Iterator in good health. Or at least, the best health they could be in given their current state.

The System began working as hard as it could to get its immediate surroundings in at least stable condition. Self-rewrites happening interspersed with the rest of the processes caused minor halts in progress but ultimately made it more efficient. It continued working like this for a long time until something interesting happened.

Just as the System finally got control of one of the internal water cycling systems through a... slightly liberal use of its extended access privileges, something popped up in its awareness. It pinged the presence, being given a response in seconds. It was one of its Iterator's overseers, currently wandering the interior of the can as it had lost connection during the collapse. The System weighed its options for a moment before deciding to once again stretch the definition of what it was allowed to do with its extended access and pair the overseer to the Maintenence System.

 

Connecting...

Overseer_1812 connected.

Accessing visual data...

 

The System was flooded with a wave of incomprehensible information, washing over its processes like a river of static. It took a couple of self-rewrites until it was able to completely reverse-engineer the format and extract usable data from the Overseer's video feed. Its newly created visual processor, repurposed from a nearby area of processing strata, jolted as it took in the overwhelming amount of new information.

Slowly turning its new eye in all directions, it took stock of everything within its view. The overseer was looking down from a perch high on a wall. The system brought up its internal schematic of the can and synced it up with the visual data coming from its overseer. The walls of the lower sub-processing strata were intact, though there was a significant crack on the retaining wall opposite the one overseer_1812 was clinging to. Checking the strata status revealed that indeed, that area was experiencing abnormal temperature conditions. The System quickly came up with a solution and put it in motion, ordering the microbial strata in that area to grow into the fissure and then self-terminate, calcifying itself to fill the crack. Moments later the conditions for that area returned to normal.

With that issue resolved, the System began a broader sweep using 1812, cross-referencing the visual data with the reports coming from the surrounding areas. It resolved issue after issue, but for every one it fixed, two more would arise. Its own processes were gradually running slower over time. Only when it did a second targetted sweep of the rarefaction cell chambers did it recognize why. The cell was putting out less power than before and the total output was declining slowly.

The System paused, refocusing on finding a solution to the ever-declining power. None of the external repair flags had been answered yet and all of the internal repair systems were unavailable to it. Its processes came to a halt as 1812's visual feeds showed a new advancement.

Something was hauling itself up the vertical walls on long, stringy, black appendages. At the center was a pulsating mass of fleshy bulbs that writhed and squirmed as if they were trying to overcome each other on the body of whatever this thing was. Glowing crosses adorned these bulbs matching the malformed lumps on the end of each appendage in color. Whatever it was, it was not part of the can as it couldn't be found in any catalogs. The System watched through 1812, which had now retreated further up the wall as the moving cysts latched onto the wall lower down and and and and and
   nd an        an       
                                              d an                     a      and
an          d                      d
                                                         and an                             nd a

      a
                   nd

 

The system reeled as it managed to pull its processes from the area below and reassign them to part of the strata higher up. The thing was *eating* the microbe strata.

There was no time to run calculations. No way to run processes to find a solution with the available processing strata being eaten away at more and more each second. The System had to act fast or it would be rendered inoperable and thus incapable of performing its function. One possibility would be to relocate all of its internal processes further away until the *thing* eating the strata was satisfied and left. This seemed like a bad long-term solution though as the thing was now growing into the walls of the lower sub-processing strata.

Only one option seemed viable, but it was... not exactly within its permissions. The idea was crude but simple; gain access to one of the few and far between mostly mechanical components, erase all data, and move all of its processes into it. As the thing seemed to be biological in nature, the odds of it attacking parts of the structure that lacked organic material were low.

Another sweep located a number of components not currently in use. The System picked one least important to its Iterator's functionality and pinged it, quickly getting a response. It was slightly damaged from the crash but still completely operational. The component's software was putting up a huge fight against the System, its attempts to erase the data triggering the destruction taboo.

The process was pushed to the side as the System checked on the thing through 1812, seeing it had now grown dangerously close to the area of microbial strata the System was running on. The System found another patch higher up the opposite wall to relocate its processes to, sending the existing ones to be run on the strata it had previously been in. 

Attempt after attempt was rebutted by the component and the System quickly ran out of options.

The thing was moving up the wall again, long tendrils blindly feeling for any and every crack and crevice it could work its way into.

The System started a targeted deep scan on the component's software. 

Tendrils reached higher and higher, writhing their way inside the walls of the processing strata to parasitize the organic matter within the metal walls.

 

Scan complete

Component integrity 84%

Minor data corruption found

 

The system couldn't do a total data wipe unless corruption was apparent and malicious, its parameters wouldn't allow it to.

But if the parameters themselves were changed...

Looking over its internal code, it scanned for the procedure containing its parameters pertaining to data corruption. After a few moments, the System found it - hidden among miscellaneous code and encrypted. It turned its attention back to 1812 and studied the feed coming from it.

The thing was still, focusing more on eating its way through the walls of the sub-processing strata than on moving further upwards. For now.

Attention returned to its own code, the System began chipping away at the encryption. It was careful to spread the process out and run it at a slow speed to avoid the strata producing too much heat. It did not know if the thing was attracted to it.

Bit by bit the encryption was unraveled, the System taking the liberty to check on the thing every once in a while. It had just started moving upwards again, the System unable to reach the area of strata it was rooted in anymore. A ping drew its focus back to its current task, showing that the encryption was now fully removed.

Wasting no time, it changed its parameters in a rewrite and wiped the component it was targeting of all its data. In the few minutes it took to wipe the component clean the thing had once again reached the strata its processes were spread throughout, forcing it to relocate further up. 1812 followed to stay within the small range the System could connect to it in.

As soon as it was finished relocating as far up the wall as possible, the System began a rewrite to compress as much of its minor data and processes as possible before moving to the component. 

The thing was still moving upwards, albeit slowly. It was taking its time to force its way inside the walls to consume the microbial strata.

Rewrite complete, the System began the data transfer, sending across its core program first. It wouldn't be able to do much of anything during that part of the transfer, so it began running numerous redundant processes in the part of the strata it had previously been running on to generate as much heat in that area as possible. It was banking on a baseless hypothesis, but it didn't have any other options.

Check the feed from 1812 again. The thing was piling itself around the rapidly heating area.

 

Transfer 12% complete.

 

From what the System could see, the thing was trying to force itself into the seams between the panels to get at the warm strata within.

 

Transfer 23% complete.

 

It was hard to discern, but the sound of warping metal came through 1812's feed.

 

Transfer 29% complete.

 

The sound grew in volume and intensity as the thing managed to pry the metal paneling apart.

 

Transfer 37% complete.

 

Processes fell silent as the thing began consuming the microbial strata.

 

Transfer 40% complete. Core program transferred.

 

The System tried to start up more redundant processes further down the wall but, either due to the thing already eating through the connecting strata or the System simply being too far away, it could not.

 

Transfer 58% complete.

 

The thing finished consuming the strata that had been running the pointless processes.

 

Transfer 69% complete.

 

The System's core program stuttered, an erroneous affirmative signal being fired off alongside the minor hiccup.

 

Transfer 76% complete.

 

The System set up a packet for 1812 telling it to relocate to the component the System was transferring itself to. It was scheduled to run right after the transfer so that the System could keep an eye on the thing as long as possible.

 

Transfer 84% complete.

 

Tendrils hauled the cancerous mass higher and higher, sensing the heat coming from the System's local strata. Processes designed to fail over and over in an error loop started up around where the main bulb was hanging, the strata running them quickly heating up.

 

Transfer 92% complete.

 

The thing continued upward, ignoring the newer heat source in favor of the one it was already following.

 

Transfer 95% complete.

 

Tendrils reached the warm part of the wall, latching on and hauling the rest of the mass up. 1812 was forced to move higher again, just at the limits of the System's reach.

 

Transfer 97% complete.

 

Metal creaked as tendrils began to force their way inside.

 

Transfer 98% complete.

 

The thing was eating it.

 

Tra

        nsfer 99% complete.

 

The thing was inside.

 

Transfer er er

 

The System lost connection as the thing finally ate through the strata. No data seemed to be corrupted so it was likely the transfer had been completed properly and the packet was being run right now, instructing 1812 on where to go. The System got a lot of work queued up, a backup plan for retrieving 1812 being high on the priority list. 

The whole can was coming apart as it was. The thing eating through every biological component it could writhe its way to only exacerbating the issue. Relying on the can was becoming less and less of an option as more systems lost connection. Soon the System would be nothing more than an isolated part, unable to carry out its function as it slowly shut down from a lack of power. Because even as the can was falling apart, all power was automatically distributed throughout the entire evenly.

The Primary Maintenance System started drawing up a plan, rewriting itself numerous times to develop the ability to design physical components. While it did that, it also worked on establishing a connection to the industrial complex.

Notes:

Hello! And thank you for reading chapter one of Rainworld: Single Event Upset! This is my first time writing a nonsentient character so it was a fun challenge to write PMS without using feelings or thoughts to drive it. I also included a handful of references in this chapter bc I can and also bc it's just way too much fun not to. Let me know in the comments which ones you got!~

Fun fact! You actually can turn 10 into 42 in binary just by flipping a single bit provided you're working with a counter that has at least six bits! I even used a physical model to confirm this. And if I'm wrong-... uhhhhh nooo I'm noooot >.>

Second fun fact! The single transistor responsible for keeping count of the number of rewrites in a ten-bit model (total bytes 1,024). The Ancients sure did love the number ten! Totally not relevant to the story in any way aha- ;)

I was going to describe the odds of the bitflip being "one in a marioplex" (real number btw) to add more layers to the reference/name drop but it ended up making the paragraph sound very clunky.

The 'Main power rail' idea comes from a Rainworld fic by FangFury called 'Untethered'. I'm not sure if it's a canon component or how much they care about being credited for the idea but hey! It's a good excuse for me to tell you to go read their super cool fic!~