Running VaM on linux

Shellphish

New member
Messages
5
Reactions
2
Points
3
I don't see much recent info on running VaM on a Linux operating systems and I've gone back into it so I'm just trying to make it work.
So far I've gotten it so work somewhat with a program (https://lutris.net/games/virt-a-mate) and Wine emulator using the scraps of drivers NVIDIA shares with the open source community.

system info:
intel i5 3ghz
NVIDIA 1650 3gb (NVIDIA driver metapackage 470 proprietery build)
8 gb ram
Ubuntu 21.10 on 250 gb ssd, VaM on the same drive.
Wine 7.0
Latest Lutris

Obviously an emulator adds a layer of complexity thus making it harder on the machine but I'm getting crashes on the simplest scene loads. Is anyone else running VaM on a Linux distro?

Typical crash log:

Started initial process 3165 from gamemoderun /usr/bin/wine /home/shell/Documents/vambackup/SOTTR.exe
Start monitoring process.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

Mono path[0] = 'Z:/home/shell/Documents/vambackup/SOTTR_Data/Managed'
Mono config path = 'Z:/home/shell/Documents/vambackup/Mono/etc'
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0
Started initial process 4360 from gamemoderun /usr/bin/wine /home/shell/Documents/vambackup/SOTTR.exe
Start monitoring process.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

Mono path[0] = 'Z:/home/shell/Documents/vambackup/SOTTR_Data/Managed'
Mono config path = 'Z:/home/shell/Documents/vambackup/Mono/etc'
Initial process has exited (return code: 0)
Monitored process exited.
Exit with return code 0


^Vam.exe is renamed to SOTTR.exe for the NVIDIA hack and not relevent to crashes
 
Last edited:
After a few hours of testing, it's viable but you need more computing power to compensate for the emulator resources consumption and other inefficiencies. My rig is below avarage but I was able to run most of what the creators put out with additional plug-ins when on Win 10. VAM is already a ram hog but running it through an emulator doubles your ram requirements at least. That's why it crashes.

Right now a single person motion capture scene with no environment, 3 point light and some image processing works well. Shout out to MeshVR for making very low resource clothing. Any custom skins or pretty much any hub clothing is too much for the system and causes a crash.
 
Last edited:
Wish I could ban Windows 10 from my PC so badly and Win11 seems to be even worse - but it's just not practical in reality - even if 90% of the stuff I use would work on Linux there is always that one stupid tool only available for window.

ELFCLASS64 smells like some 32 / 64 bit library issue
So the way I understand this - it does crash because it's running in 64 bit mode and then for whatever reason (some user action in VAM?) an incompatible 32 bit library is being attempted to load into the process -> 32/64 bit conflict.

Does VAM run even stable on Windows with the Nvidia 1650 with only 3 GB VRAM? Seem very borderline.

Edit: @Shellphish You posted seconds before I did. It's good to know that it would work :D
 
Last edited:
Your gripes with Linux not being a stable/ daily use machine are warranted, sometimes even the simplest tasks turn into a 3 hour research session.
The 1650 gets the job done. Like I was able to run all @hazmhox scenes, which are usually pretty demanding. Plus I'm learning to develop for Vam so I have Blender and other software and I use it to test things, the workflow is still a problem. And tts not a good time to buy computer hardware right now so I'm making what I have work...or finding out to what extent it does. lol
 
Last edited:
One thing to note is that it does run indefinitely if the load on the system is light, I have experienced crashes on windows as well and I'm sure it was due to my hardware not being up to it. Which leads me to believe that its a hardware bottleneck issue, vam crash logs would help, if they have them.
 
Last edited:
I was sort of forced to use Linux 10 years ago due an admin job. Was in control of backup- and mail-servers, etc. Compared to Windows or Mac these things just ran, ran and ran - no software problem. Started like an idiot there not knowing how to remotely control a server via SSH. Learned a lot. Biggest problem I ever faced was finding out about random crashes caused by faulty RAM.

My "PREMIUM" :unsure: Microsoft user experience last year:

The last time I turned on the Windows 10 Update-Service Microsoft decided to install a SCSI driver for my NVMe M.2 SSD - effectively bricking the every X570 chipset system with a M.2 OS-drive. Later Microsoft removed the update - realizing they have f***ed up.

To make things more complicated my personal PC uses VeraCrypt to encrypt all my drives.
Had to manually decrypt the system drive, restore the driver, encrypt again. One full workday wasted.
I was working in IT repair/support at that time - we got so many bricked PCs due to this Microsoft Update. Casual customers blamed us for this problem.

Concerning VAM and memory:

Once I did some sort of torture test with VAM.
Goal: try to crash VAM by filling up RAM or VRAM.

I did chain load many complex scenes. Took very long with 64 GB RAM and RTX 3090 with 24 GB VRAM.
VAM never did free up VRAM until it was full. Only if there was not enough room to load something it started to free up VRAM.
That is noticeable by VAM freezing for a short time actually.
Don't like how this is handled - because I tend to use other VRAM demanding software like DAZ Studio at the same time.
Guess it's handled this way to reuse content from VRAM and reduce loading times.

VAM never crashed for me with the VRAM maxed out. RAM is another story.
There is a 20 character scene on VAM Hub that pushed VAM to it's limit.
Had a lot of RAM (48 GB?) already filled up from previous scene loads then tried to load the 20 character scene.
Waited very long to see whether the scene would actually load after a long time - nope.
RAM was maxed out and VAM seemed to have crashed.

Maybe I'm just old and grumpy, but I feel like *back in the old days* when memory was more limited programs used to have better memory handling. Modern software usually just crashes. Nobody checks anymore whether there is actually enough memory available before loading something. C# and garbage collection made it super easy for programmers to forget and not worry about memory management - the results are FPS-drops due to garbage collection in almost every Unity program.:mad:

Anyway - yeah, probably crashing due to limited memory.
 
Wow thats pretty cool, even if your introduction to linux was forced, haha.
I chose the way of the unix because I learned that most of the internet runs on apache (back when facebook really blew up, like Social Network they kept mentioning wget) so I tried to roll my own in an attempt to learn Web Admin tasks. And later became a disto addict where I tried all the flavors and really liked being able to do so much in terminal.

The fact that Microsoft or apple can, if they really want to, or are dumb enough to do it on accident, basically brick my machine or restrict what I use it for doesn't sit well with me.

On your point on (what I blame on) lazy programmers, or perhaps sub par programmers. When I was trying to really learn programming, C was the way to go, or java. Because its a pretty low level language and as a programmer you really should know what you are doing. But I learned that assembly is lower and learning sssembly will will get you close enough to memory allocation that you HAVE to understand how it works and how to use it. Now. generally speaking writing assembly is not efficient or even necessary but it IS a great teaching tool. So I blame the poor quality of code to the fact that many new programmers are not learning how computers actually work, because many educators don't even teach C++, like the code camps. The students just know how to pound out code, with little understanding of what the data they are manipulating is doing inside the system.

But yes, general conclusion is that the additional memory requirements for running Vam with an emulator are substantial. I'll still keep plugging away at it because the beauty of Linux is that there are many ways to get anything done, just takes more time and brain cells haha.
 
Last edited:
I don't understand, the developers should be able to compile vam in a linux version under unity no ? It would make us eervice
 
As a linux user myself, I can see the desire to run it natively, but that's pretty much all you'd be able to do anyway. Without daz you wont be doing anything beyond clicking around in the gui, which isnt why most of the people in the community are here. it's a lot to ask to appeal to a small % of people that dont want to dual boot. Personally, I'd rather see the developer spend time and effort on the next generation of the platform, and let me create any scenario I can invent in my mind, than enable me to load the app without rebooting into windows.
 
Why don't you guys just buy a 50$ SSD and dual boot? If you really need windows you could also use an old hdd, trying to use windows stuff on Linux is a pain and you don't really need that
 
might as well latch onto this topic since i've been messing about with linux myself.
i got nobara linux, installed lutris and wine-ge into it using protonup-qt, then added the game to lutris. the game boots up right away, but i also had to install corefonts through winetricks to fix invisible ui text.
the game works... kind of. everything looks to be working, no graphical issues that i've seen, except plugins are completely broken. the error log is filled with "access to the path is denied" errors and i have no clue how to fix that.
Code:
!> Compile of vamX.1.32:/vamXBootstrap.cs failed. Errors:
!> [CS16]: Could not write to file `MVRBootstrapPlugin_vamX_1_32__vamXBootstrap_cs_0d0ddad19757f0216dcf62f83f1dec02_0', cause: Access to the path ".\MVRBootstrapPlugin_vamX_1_32__vamXBootstrap_cs_0d0ddad19757f0216dcf62f83f1dec02_0.dll" is denied.
!> [CS]: Mono.CSharp.FatalException: Could not write to file `MVRBootstrapPlugin_vamX_1_32__vamXBootstrap_cs_0d0ddad19757f0216dcf62f83f1dec02_0', cause: Access to the path ".\MVRBootstrapPlugin_vamX_1_32__vamXBootstrap_cs_0d0ddad19757f0216dcf62f83f1dec02_0.dll" is denied.
  at Mono.CSharp.Report.Error (Int32 code, Location loc, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Report.Error (Int32 code, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.AssemblyDefinition.Save () [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsDriver.Compile (System.Reflection.Emit.AssemblyBuilder& assembly, System.AppDomain domain, Boolean generateInMemory) [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsCompiler.CompileFromSettings (Mono.CSharp.CompilerSettings settings, Boolean generateInMemory) [0x00000] in <filename unknown>:0  in  at [0, 0]
!> Compile of Blazedust.SessionPlugin_CUAManager.21:/Custom/Scripts/Blazedust/CUAManager/ADD_ME.cslist failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_Blazedust_SessionPlugin_CUAManager_21__Custom_Scripts_Blazedust_CUAManager_ADD_ME_cslist_be5c3d83f6a3d9adb4fed4c68fc2274d_1', cause: Access to the path ".\MVRPlugin_Blazedust_SessionPlugin_CUAManager_21__Custom_Scripts_Blazedust_CUAManager_ADD_ME_cslist_be5c3d83f6a3d9adb4fed4c68fc2274d_1.dll" is denied.

!> Compile of JayJayWon.BrowserAssist.43:/Custom/Scripts/JayJayWon/BrowserAssist/BrowserAssist.cslist failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_JayJayWon_BrowserAssist_43__Custom_Scripts_JayJayWon_BrowserAssist_BrowserAssist_cslist_e1b3b8e3466c9cb02dec0ec75922d2c1_2', cause: Access to the path ".\MVRPlugin_JayJayWon_BrowserAssist_43__Custom_Scripts_JayJayWon_BrowserAssist_BrowserAssist_cslist_e1b3b8e3466c9cb02dec0ec75922d2c1_2.dll" is denied.

!> Compile of JayJayWon.UIAssist(Patron).62:/Custom/Scripts/JayJayWon/UIAssist/UIAssist.cslist failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_JayJayWon_UIAssist(Patron)_62__Custom_Scripts_JayJayWon_UIAssist_UIAssist_cslist_65df88b2381dd9fd23fefa2409586aaa_3', cause: Access to the path ".\MVRPlugin_JayJayWon_UIAssist(Patron)_62__Custom_Scripts_JayJayWon_UIAssist_UIAssist_cslist_65df88b2381dd9fd23fefa2409586aaa_3.dll" is denied.

!> Compile of Pineapler.VamCuaSuperglue.3:/Custom/Scripts/Pineapler/VamCuaSuperglue/VamCuaSuperglue.cs failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_Pineapler_VamCuaSuperglue_3__Custom_Scripts_Pineapler_VamCuaSuperglue_VamCuaSuperglue_cs_246d252a5aaf96e1a9eabbd5cdd68e6b_4', cause: Access to the path ".\MVRPlugin_Pineapler_VamCuaSuperglue_3__Custom_Scripts_Pineapler_VamCuaSuperglue_VamCuaSuperglue_cs_246d252a5aaf96e1a9eabbd5cdd68e6b_4.dll" is denied.
!> [CS]: Mono.CSharp.FatalException: Could not write to file `MVRPlugin_Pineapler_VamCuaSuperglue_3__Custom_Scripts_Pineapler_VamCuaSuperglue_VamCuaSuperglue_cs_246d252a5aaf96e1a9eabbd5cdd68e6b_4', cause: Access to the path ".\MVRPlugin_Pineapler_VamCuaSuperglue_3__Custom_Scripts_Pineapler_VamCuaSuperglue_VamCuaSuperglue_cs_246d252a5aaf96e1a9eabbd5cdd68e6b_4.dll" is denied.
  at Mono.CSharp.Report.Error (Int32 code, Location loc, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Report.Error (Int32 code, System.String error) [0x00000] in <filename unk

<Truncated>

!> Compile of Sally.SallyUIscale4K.7:/Custom/Scripts/Sally/SallyUIscale4K/UIscale4K.cs failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_Sally_SallyUIscale4K_7__Custom_Scripts_Sally_SallyUIscale4K_UIscale4K_cs_12dc03c05510a3d76e667773e36f21b2_21', cause: Access to the path ".\MVRPlugin_Sally_SallyUIscale4K_7__Custom_Scripts_Sally_SallyUIscale4K_UIscale4K_cs_12dc03c05510a3d76e667773e36f21b2_21.dll" is denied.
!> [CS]: Mono.CSharp.FatalException: Could not write to file `MVRPlugin_Sally_SallyUIscale4K_7__Custom_Scripts_Sally_SallyUIscale4K_UIscale4K_cs_12dc03c05510a3d76e667773e36f21b2_21', cause: Access to the path ".\MVRPlugin_Sally_SallyUIscale4K_7__Custom_Scripts_Sally_SallyUIscale4K_UIscale4K_cs_12dc03c05510a3d76e667773e36f21b2_21.dll" is denied.
  at Mono.CSharp.Report.Error (Int32 code, Location loc, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Report.Error (Int32 code, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.AssemblyDefinition.Save () [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsDriver.Compile (System.Reflection.Emit.AssemblyBuilder& assembly, System.AppDomain domain, Boolean generateInMemory) [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsCompiler.CompileFromSettings (Mono.CSharp.CompilerSettings settings, Boolean generateInMemory) [0x00000] in <filename unknown>:0  in  at [0, 0]
!> Compile of hazmhox.vammoan.22:/Custom/Scripts/VAMMoan/VAMMoan.cslist failed. Errors:
!> [CS16]: Could not write to file `MVRPlugin_hazmhox_vammoan_22__Custom_Scripts_VAMMoan_VAMMoan_cslist_94d4ed880a79b700de2fa1c6aec2475b_22', cause: Access to the path ".\MVRPlugin_hazmhox_vammoan_22__Custom_Scripts_VAMMoan_VAMMoan_cslist_94d4ed880a79b700de2fa1c6aec2475b_22.dll" is denied.

EDIT: ok, got some help from the discord about it, got it figured out. this game was on an ntfs drive and wine had trouble with filesystem permissions. so what i had to do:
and that was it, now it works! though it's been a while since i played VaM, i don't remember if this is standard collision/physics jank or some sort of imperfect translation layer :LOL:
Screenshot_20240113_104236.png
heavy scenes are also no trouble for linux:
Screenshot_20240113_104914.png
 
Last edited:
I added VAM.exe to Steam (Games -> Add non-Steam game) and used option to force compatibility tool (Proton) and it just works. Ran Vam updater with Wine, to install it.
 
I recently spent a few days trying to figure this out about a week ago and wrote it up as a clear, concise guide to save others the trouble.

 
Back
Top Bottom