Runtime Gc Rimworld

0 views
Skip to first unread message

Ailene Goldhirsh

unread,
Aug 5, 2024, 12:10:42 PM8/5/24
to neusibmala
Helloeveryone, I recently installed Manjaro instead of Arch Linux due to the fact that Rimworld with mods did not run on it. I tried to run it on Manjaro, tried almost all versions of Proton, tried to run it through steam-runtime, steam-native and regular steam, but nothing helped. I read a lot of documentation on this issue, looked at the errors thanks to launching Steam through the command line and saw the following:

Thank you for your answer, omano.

I was looking at information on ProtonDB and also wondering why the game is not working properly. Regarding information about the system - what specific data? What commands can I use to provide you with this information?

As for full logs after launching the game, so they are:


PackageReferences, like other kinds of References, point towards one or more underlying assemblies. Publicizing these assemblies is just a matter of finding out what the underlying assemblies are called, and then specify them as explained above.


There are two obstacles with accessing private members - the compiler and the runtime.The compiler won't compile code that attempts to access private members, and even if it would - the runtime would throw a MemberAccessException during execution.


Publicizer addresses the compiler issue by copying the assemblies, rewriting the access modifiers to public, and feeding those edited assemblies to the compiler instead of the real ones. This makes the compilation succeed.


The runtime issue is solved by instructing the runtime to not throw MemberAccessExceptions when accessing private members.This is done differently depending on the runtime. Publicizer implements two strategies: Unsafe and IgnoresAccessChecksTo.


This compiles just fine. However, during execution the runtime is presumably loading the original assembly where Person.Name is protected.So you have a Student class with a public Name-property overriding a protected Name-property on the Person class.This will cause an access check mismatch at runtime and throw an error.


However, if there are a lot of protected members you have to override, doing this for all of them can be cumbersome.For this scenario, you can instruct Publicizer to ignore all virtual members in the assembly:


Sometimes assemblies contain members generated automatically by the compiler, like backing-fields for events.These generated members sometimes have names that conflict with other member names when they become public.


This article exists as a collection of various tools and programs that can be used for modifying various parts of games and game assets made with the Unity engine. Specifically, it is intended for modding the game Lobotomy Corporation, but can apply to any Unity game.


Library for patching, replacing, and altering applications at runtime in C#. It has been used for modifying games such as Rimworld, 7 Days To Die, Stardew Valley, and is also a part of Lobotomy Corporation's BaseMod.


Very useful with many useful functions such as: searching through the code for a string; analyzing functions, objects, and variables to see where they're called and modified; IL-code editing; and of course a dark mode.


Standard fair pretty much. Has plugins that can convert image files to the corresponding texture files used in the game. It also has a very useful tool to create installers that will automatically modify the corresponding asset files to update the game. An example of the installer is used in the Agent Ears mod for Lobotomy Corporation.


This tool is also fairly simple to use. It also has a feature the other tools do not, which allows for Scenes to be extracted from the files. This allows the game's assets to be reimported and used in the Unity engine to create a new project file.


This page assumes familiarity with the Steam#Directory structure, Steam#Launch options, environment variables, the Steam runtime and shared libraries. The GAME pseudo-variable is used to refer to a game's directory. When the text reads "run the game with FOO=bar" it is implied that you either update your launch options or run the game from the command-line with the environment variable.


For games running with Proton, you can check ProtonDB which lists a lot of useful user reports for specific games. You can filter searched reports by Linux distribution and by hardware. Users also describe if they had to apply tweaks.


Any special character may produce a square or an empty space mark in the game, main menu and game console. In practice, any characters other than latin ones are not working. The problem is that Bitstream Vera Sans is configured as the system primary default font for latin sans-serif fonts.


Games using Unity, e.g. Papers Please, Vampire Survivors, expect PulseAudio to be installed and will quietly crash with SIGSEGV on running if it is not installed. You can also use PipeWire with pipewire-pulse.


If the game does not recognize your screen's resolution, launch the game with Game Launcher and check the Unity screen selector option to correct the resolution. This will give you a GUI in which you can select the correct screen when the game is started.


The version of libSDL2 shipped with the game seems to be out-of-date and may not support your gamepad yet. Simply remove or rename /game/lib64/libSDL2-2.0.so.0, the linker will fall back to using the up-to-date version from /usr/lib.


If you encounter a popup with Fatal Error: Fmod could not be initialized!! on startup which immediately closes the game and you are using pipewire, install these packages if they are not already: pulseaudio-alsa, lib32-libpulse and lib32-alsa-plugins. Reboot and re-open the game.


Discussion on the variable can be found in Proton issue #1209. Lower values maintain lower audio latency but crackling may still occur; higher values are more likely to eliminate crackling but allow for higher audio latency.


The game is known to segfault when opening the settings and possibly during or before playing. A workaround from the Steam discussions is to replace the game's RenderSystem_GL.so with one from Debian's repositories. To do that download this deb file, and extract it with dpkg:


Borderlands 2 does not allow the Ctrl key to be used by default. The game seems to be accessing keycodes and not keysyms, therefore xmodmap has no affect. A workaround is using setkeycodes to map the Ctrl-scancode to some other key, as described in Map scancodes to keycodes#Using setkeycodes. I use setkeycodes 0x1d 56 (as root) to map Ctrl to Alt before starting the game and setkeycodes 0x1d 29 to restore the default.


Out of the box you will not be able to log into SHiFT since the game expects certificates to be in /usr/lib/ssl, which is where Ubuntu stores them. Arch however uses /etc/ssl.To resolve the problem, run the game with SSL_CERT_DIR=/etc/ssl/certs.


Possible solution 2: Launch steam as steam-native as described in #Steam native runtime. If the game still fails to launch even after installing the steam-native-runtime meta package, then you might be missing some libraries. You can find those missing libraries as described in #Debugging shared libraries.


If the game appears as Running, then syncs and closes when you launch it from Steam, try creating a steam_appid.txt in the game directorycontaining 261640. This should resolve the issue and let you start the game directly from the game directory. If that does not work, try using the steam-native-runtime.


The Linux port of Civ V experiences a bug which induces segfaults when running on a CPU with >8 logical cores. This includes many common CPUs, especially Ryzen 7 and i7 series parts. To diagnose this problem, check the output of dmesg:


If you are using Wayland, you might need to also set QT_QPA_PLATFORM=xcb, as the game's launcher uses a version of Qt which only supports Xorg (see Wayland#Qt), another way is to replace the bundled Qt with one provided by Arch Linux [11]. Some versions of the game also seem to require adding SDL_VIDEODRIVER=x11 and will otherwise refuse to start with an error message that reads "An unrecoverable error has occurred, and Civilization VI cannot continue."


Wayland does not define a primary monitor, so the game will show the available resolutions of an arbitrary monitor; it may not have the same size and the mouse may be off. A solution is to set an Xwayland monitor as primary.


To play the Windows version of Civ VI, first you must force Proton usage. Then, you need to bypass the launcher which is buggy through proton. To skip the launcher, right click on the game, click Properties, and set the following Launch options:


If you have a secondary monitor you might have a part of your lower screen you cannot reach in menus.If on Gnome you can try to open the overview (Super key) and drag the game to the other monitor and back.


When using the amdgpu driver, some users [13] experience a problem with map loading taking longer than one minute and being stuck on "Initializing World" or "Loading Resources".You can try the following workaround:


On Wayland, it's currently (as of May 2024) necessary to add SDL_VIDEODRIVER=x11 to your launch options. If you haven't added any launch options, also add %command% at the end of your launch options. Game should launch normally.


If you use Wayland, start the game with SDL_VIDEODRIVER=x11. Similarly, if you use PipeWire, start the game with SDL_AUDIODRIVER=pulseaudio - other backends might also work, but the default one does not.


The game may also segfault if you use an AMD Zen 3 or newer CPU. To fix this you can hack together a small shared library to replace the mprotect function and make sure the allocated memory has the PROT_READ access flag.[15]. Here is an example:


If you get a crash on start in libX11.so.6.4.0, the problem is likely a bug in SDL1.3. Unfortunately, DST is statically linked and we cannot use LD_PRELOAD to replace libSDL with something newer. The bug has been reported to the developer, but a possible workaround is to patch XGetICValues() to not crash when it is incorrectly given a null parameter.

3a8082e126
Reply all
Reply to author
Forward
0 new messages