Tutorial Others Playing On Linux - Tutorials, Tools And Help

5.00 star(s) 3 Votes

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
Thanks, so this is 'Windows Media Foundation', not a driver thing but Win-only territory. Also '3rd party', basically the pimped DirectX entities, DX10 era. This is bad... :( Will make Unity way more win-specific. Hope the creators come up with a solution without WMF crap, or people are trying to create a wrapper for this peculiar component to make use of the closed source libs.
Thanks for updating me.
Compiling the game for Mac or Linux will solve the problem. But of course Dev don't want to support three or four platforms at once!

Project Vulkan (DXVK) is the first step forward to make DirectX obsolete, because DXVK supports Linux and is open-source!
 
  • Like
Reactions: Cirro84

Capacitor

Member
Dec 8, 2017
104
186
May I ask which games or engines you prefer, cap?
Mostly Ren'Py. It's not the fanciest engine, but it's a good, easy and clean way to tell a nonlinear story coupled with lots of images. HTML is also on the same level, except I don't really like how engines like Twine look like. Flash depends, but it's doomed to disappear soon (just in time, now that it works perfectly under Linux...) and NW.js games usually work fine. RPGM games tend to keep my CPU running a lot, but this may be an issue with my hardware, I'm not sure. As for specific titles, I usually like games focusing on controlling others' minds/bodies. The ones I like most are , , , , , , , , , , , .

Maybe particular video card - driver combos to be avoided? Any experiences?
I can tell you this much: avoid anything related to Nvidia Optimus at all cost (GeForce GT 540M in my case). The idea behind is interesting, the GC of my laptop turn on and off depending on the need, thus saving a lot of battery. On Windows. On Linux, on the other hand, the GC is always on, running at 100%, so not only my computer consumes the battery faster than on Windows, it heats considerably more (10-20°C). The best solution I was able to find, with the help of people with much more experience, is to shut down the GC and hope to never need it. I also have to use a legacy version of the driver, because the newest one doesn't shut down the GC. In theory I could turn the GC on for a single program, and in single distributions it worked well, but right now once the GC is turned on, it won't turn off even if I close the program that activated it, so I need to reboot the computer to avoid overheating. Next computer will need a lot more research on the hardware compatibility with Linux. And won't probably be a laptop. And will require its own nuclear power plant for the power supply, but that's another story.
 
  • Like
Reactions: Cirro84

kolobezka

Member
Apr 13, 2018
319
257
Edit 2: @kolobezka alright, so the dev of 'Man of the House' may have used 3rd party plugins, as mentioned last page. This is messing things too, but people already this, the plugin is well known (as mentioned by c_a). Another thing is 'Windows Media Foundation' (also mentioned by c_a).
Plus when devs create something on their own, so no chance but to include this code and use it like a BLOB of unfree code, because there's nothing to substitute it. Those are the two areas for trouble atm?

Consider myself not a Linuxer but you seem knowledgeable. So I'm asking specifically.
I won't refer myself as knowledgeable, but yes, this is exactly the problem. Some third party libraries are "scrapeable" from other games with linux support, but there is ton of different builds/versions whose are not fully compatible (it's natural, this is how things work), but it could be some workaround.

Biggest problems are, as you mentioned, 3rd party libs with no equivalent and devs own code built into binary.

In theory, we could reverse-engineer those libraries and "port" them to linux somehow, but It's technically very demanding and unity itself is closed source too, so you would be forced to hijack/reverseengineer unity itself, which is kinda stupid idea. Even debugging unity games to make them playable (missing libratries, bad folder structure/permissions) was pain in the ass, as there are no big abilities to enable enhanced logging and there are no debug symbols. Just using strace/ltrace is mostly out of my scope. I'm also more scripting kind of guy living in terminal than those guys living in strace :D

To finish idea, it's hard to trace app which was made to be hardly traceable, without any further knowledge of internals. Unity lacks any documentation and this is one of biggest problems. Linux community/users are able/willing to do a lot of things, but there must be some piece where to start. And there is too much of missing pieces, IMO it's on pruporse, as Unity developpers are getting money for adding magic export button for other platforms.
 
  • Like
Reactions: Cirro84

kolobezka

Member
Apr 13, 2018
319
257
Mostly Ren'Py.
Renpy is nice, as it's written in python, which makes it perfectly porable and extendable. Bonus is really nice documentation and opensource.
Nvidia Optimus on linux
Yeah, this is kinda pain in the ass, I have W520 laptop with Nvidia Quadro graphics, make it work is hard and I'd like to avoid it too. My external monitor outputs are hardwired to GPU, so I had to make really nasty X.org config to support
1, virtual screens to make optirun able to launch games and apps with demands on GPU power
2, support for intel-virtual-output (another virtual x screens to be able to attach second/third monitor) - as kernel does not detect displays wired to shut-down gpu
3, detach/stub gpu from running kernel to pass it's full power to virtual machine (some mech-eng tools arent ready to run on linux)

I'm running on arch and last nvidia updates broke my setup, as my gpu fell of latest supported package to the nvidia-390.xx package, so I had to "downgrade" drivers.

While debugging those all issues, i got nervous from rebooting over and over, as I usually have open many of tmux screens and ssh sessions somewhere. It's possible to kill device from terminal, you have to have loaded bbswitch kernel module, then as root just
Code:
echo OFF > /proc/acpi/bbswitch
.
Usually, nothing happens :-D as there are modules hanging (check dmesg for this), typically nvidia and nvidia_modeset.

Code:
lsmod | grep nvidia # check if they are loaded
rmmod nvidia_modeset nvidia # not sure about order, just remove them
echo OFF > /proc/acpi/bbswitch # disable gpu, should go without problems
cat /proc/acpi/bbswitch # check result
Sometimes, there is more shit there, then it's needed to check bumblebeed log and kernel (dmesg) log.

Those issues should be solved in wayland, but Arch has thrown wayland to us ~2 years ago and it broke everything, as it's not compatible with bumblebee and should (bud does not yet) solve this stuff it's own way, so I'm sticking back with old stable Xorg.
 
  • Like
Reactions: Capacitor

Capacitor

Member
Dec 8, 2017
104
186
Code:
lsmod | grep nvidia # check if they are loaded
rmmod nvidia_modeset nvidia # not sure about order, just remove them
echo OFF > /proc/acpi/bbswitch # disable gpu, should go without problems
cat /proc/acpi/bbswitch # check result
Sometimes, there is more shit there, then it's needed to check bumblebeed log and kernel (dmesg) log.

Those issues should be solved in wayland, but Arch has thrown wayland to us ~2 years ago and it broke everything, as it's not compatible with bumblebee and should (bud does not yet) solve this stuff it's own way, so I'm sticking back with old stable Xorg.
I never thought it would suffice to write "OFF" on "/proc/acpi/bbswitch" to simply stop the GPU. If it's that simple, I need to experiment a bit, but I can try to add "optirun" when I launch some games.
 

kolobezka

Member
Apr 13, 2018
319
257
I never thought it would suffice to write "OFF" on "/proc/acpi/bbswitch" to simply stop the GPU. If it's that simple, I need to experiment a bit, but I can try to add "optirun" when I launch some games.
You have to be root do do it,
Code:
sudo echo OFF > /proc/acpi/bbswitch
will not work, as echo is ran as supersuser, but output redirection is done by permissions of your running shell...

You have to type from rooted shell, or use nasty workaround:
Code:
echo OFF | sudo tee /proc/acpi/bbswitch
Still, there is ton of things whose could go wrong, for basic elaborating/setup, I' recommend Arch wiki, even if you are not on Arch.
 
  • Like
Reactions: Capacitor

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
@Capacitor

I found a workaround for unity's animation problem on wine.. do you wanna add it to OP?

It has been tested on , since it is the only game I'm aware of using the build-in videoplayer, and it works on Linux and Mac via Wine. It is not perfect, but at least people don't need to use a VM anymore.

Instructions: [Tested with Wine-Staging 4.04-rc and Wine-Stable]

As far as I have test it, the workaround only works on a 32bit prefix! So make sure you use 32bit and not a 64bit! Also your prefix needs to be set as Windows 7 not Windows 10!

Download and extract attached workaround.zip

Run regedit (I don't know why, but I can't use the command line for register .reg files - so, had do it manually)
Code:
wine regedit.exe
Click on Registration and import both .reg files.

Copy all dlls from Syswow64 folder from the extracted workaround.zip to your wine c_drive/System32 folder.

Register msmpeg2vdec.dll and msmpeg2adec.dll to your prefix:
Code:
wine regsvr32 msmpeg2vdec.dll
wine regsvr32 msmpeg2adec.dll
You will get an notification, if registration succeed or not.

Animation might not start always, then you have to restart the game or just wait a bit.
 

Capacitor

Member
Dec 8, 2017
104
186
I found a workaround for unity's animation problem on wine.. do you wanna add it to OP?
Of course i want to! That's exactly why I created this thread. Right now I'm in a rush, but as soon as I have time I'll copy everything in the OP, and give you credit for it, of course. Thanks a lot!
 
  • Like
Reactions: cold_arctus

uzandaf

New Member
Jun 6, 2018
5
1
Kind Sir,
Many thanks for your excellent work. But could you be so kind to make a tutorial for total n00bs which are just migrated to Linux and don't quite get what to do yet?
Like "You have freshly installed Ubuntu 18.10 on your SSD and 1TB+ HDD which you want your games to reside on. Nothing installed to it yet. you need to do the following:
1. ...
2. ...
3. ...
and then you will be able to run your games from F95"

I honestly tried to use google and read about installing wine, DXVK etc...but the problem is that information is fragmented and often very limited because people assumes that you know the parts that they omitted...

Thanks in advance.
 

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
Kind Sir,
Many thanks for your excellent work. But could you be so kind to make a tutorial for total n00bs which are just migrated to Linux and don't quite get what to do yet?
Like "You have freshly installed Ubuntu 18.10 on your SSD and 1TB+ HDD which you want your games to reside on. Nothing installed to it yet. you need to do the following:
1. ...
2. ...
3. ...
and then you will be able to run your games from F95"

I honestly tried to use google and read about installing wine, DXVK etc...but the problem is that information is fragmented and often very limited because people assumes that you know the parts that they omitted...

Thanks in advance.
To write an entire instruction is not possible, because different games (not only games from F95) need different configuration in Wine or other extras.

The first thing you should learn is: How do set up different prefixes/bottles/pocket universes for different program or games in Wine!

Let me introduce you to some helpful wine commends:

1. Setting up a 32bit or 64bit prefix - Not all programs or games are supported on 32bit or 64bit prefix! In this case you need both!

After you followed the instructions on (for you it is Ubuntu). Note: you have to enable 32bit separately, if your main system is 64bit!

Note: After installation, and before the you use wine, you should set up a different wine prefixes!

(Open your terminal and use this command to set up a 64bit prefix. Note: Capitalization is important)

Code:
 For a 64bit prefix use this commend:
$ WINEPREFIX=~/.wine64 WINEARCH=wine64 wine wineboot

For a 32bit prefix use this commend:
$ WINEPREFIX=~/.wine32 WINEARCH=wine32 wine wineboot
You don't have permission to view the spoiler content. Log in or register now.

Using a different prefix-name as the default one, makes it necessary to address the explicit prefix every time, when you start a program or game.

For example:
Code:
$ WINEPREFIX=~/.wine64 wine game.exe

$ WINEPREFIX=~/.wine32 wine game.exe
Now I'm tired ... :D
 

uzandaf

New Member
Jun 6, 2018
5
1
Many thanks. First time I have encountered through and meaningful explanation without too much technical fuss.

Once again, thanks!

PS. question - where can one find what should be installed into wine prefix for the game to work? As far as I understood, created prefix is barebone Windows. without runtimes, DirectX and other (may be needed) shit...
 

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
Many thanks. First time I have encountered through and meaningful explanation without too much technical fuss.

Once again, thanks!

PS. question - where can one find what should be installed into wine prefix for the game to work? As far as I understood, created prefix is barebone Windows. without runtimes, DirectX and other (may be needed) shit...
You are welcome btw,.. you need to install winestricks either via ubuntu repository (old version) or Github (latest version)

Installation guide is here:




Code:
$ cd "${HOME}/Downloads"
$ wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ sudo cp winetricks /usr/local/bin
You don't have permission to view the spoiler content. Log in or register now.

Start winetricks:

Code:
$ WINEPREFIX=~/.wine64 winetricks

or

$ WINEPREFIX=~/.wine32 winetricks
Most needed "extras" to play games like MotH or The Twist are corefonts, ffdshow, devenum and quartz.

However, at the beginning you have to do lot of experimenting to find the right settings etc.. and you will delete your prefix multiple times. :LOL:
 

Capacitor

Member
Dec 8, 2017
104
186
Kind Sir,
Many thanks for your excellent work. But could you be so kind to make a tutorial for total n00bs which are just migrated to Linux and don't quite get what to do yet?
Like "You have freshly installed Ubuntu 18.10 on your SSD and 1TB+ HDD which you want your games to reside on. Nothing installed to it yet. you need to do the following:
1. ...
2. ...
3. ...
and then you will be able to run your games from F95"

I honestly tried to use google and read about installing wine, DXVK etc...but the problem is that information is fragmented and often very limited because people assumes that you know the parts that they omitted...

Thanks in advance.
Hi, I thought I wrote everything in the first post. What exactly isn't clear enough? I can correct the explanation and improve it.
The part about Wine should already contain step by step instructions. I'll compare Cold_arctus' ones to check if something is missing or isn't clear enough.
 

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
Hi, I thought I wrote everything in the first post. What exactly isn't clear enough? I can correct the explanation and improve it.
The part about Wine should already contain step by step instructions. I'll compare Cold_arctus' ones to check if something is missing or isn't clear enough.
He is a newbie on Linux who needed an explanation in baby-steps.. When I started to use Wine I also thought about such a guide, because all available guides on the i-net were to technical. Your OP should be fine for 08/15 users, but not for fresh Linux newbies.
 

uzandaf

New Member
Jun 6, 2018
5
1
the main problem is that I am 40 years old, and don't catch technical details as fast as it was when I was a bit more....fresh =)
And almost all guides that can be found in the net are
1. fragmented
2. automatically assume that you know the details that they think are "must-know" . sadly, this is not always the case.

That's the most reason I have asked for help in finding / acquiring a more detailed / simplified guide.

PS. I have been able to finally start College Life through WINE...funny thing is that first time I tried it on barebone WINE 4.0 staging, it started, sound was present, but screen was black. After I installed fresh copy of wine, created prefixes, installed bunch of things through winetricks game started. but no sound... +)
 
  • Like
Reactions: paddyo73

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
PS. I have been able to finally start College Life through WINE...funny thing is that first time I tried it on barebone WINE 4.0 staging, it started, sound was present, but screen was black. After I installed fresh copy of wine, created prefixes, installed bunch of things through winetricks game started. but no sound... +)
This game

It is a RPGM game. You can start the game in two ways, using the index.html and play it through your browser (using cookies as your saves) or via Wine.

For Wine you need to delete the libGLESv2.dll file from the directory to start the game.
You will run into some problems when you play it via Wine. RPGM games have a memory problems, so it could be, that the game will froze and you can do nothing. For this reason you should save a lot of times!

Sound: Check option, if BGM, BGS, ME and SE are set to 100 or a little bit less.

(I tested above game right now and I get sound on the campus.)
 

uzandaf

New Member
Jun 6, 2018
5
1
Yeah, that one. I have managed to run it smoothly following the advice in the OP. Downloaded Linux version of nwjs, copied www folder, package.json and nw.json and run a sh fow nw. As of now, all is running smooth, saves normally etc.

though starts using the same procedure, gives an error after using the menu. Something about "can't make save" or something like that.
 

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
RPG Maker:
Turn your Windows RPGM Game into a native Linux version.

Download ( ) the provided game config files and extract them to the game's main folder (next to .exe)
Windows files you have to delete:
- d3dcompiler_47.dll
- ffmpegsumo.dll
- Game.exe
- icudtl.dat
- libEGL.dll
- libGLESv2.dll
- package.json
- pdf.dll

So far tested RPGM Games: Lily of the Valley, Anna Exciting Affection and Lust Epidemic.

EDIT: New Linkhttps://we.tl/t-A5mZ8hBqVH

EDIT2: RPG MV Linux Launcher provided by @johnelros!

(since I'm to lazy to re-upload them every time my download link expires :LOL:)
 

BBBobson

New Member
Jul 20, 2017
3
3
Turn your Windows RPGM Game into a native Linux version (Updated/Alternative)

1. Download nwjs-v0.35.3-linux-x64.tar.gz (or whatever is the current version, I can't add links, just google for it)
2. Extract: tar xvzf nwjs-v0.35.3-linux-x64.tar.gz
3. Go to the game you want to play: cd ~/Downloads/Elena\'s\ Life\ v0.26/
4. Copy nwjs to your game: cp -rf ~/Downloads/nwjs-v0.35.3-linux-x64/* .
5. Play the game by executing nw: ./nw

For some reason some games will not let me save when using this native linux 'port' (with wine it works). Then change the following:

6. Edit www/js/rpg_managers.js change the save path from /save/ to save/, find the line:

var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, '/save/');

and change it to:

var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, 'save/');

notice the missing '/' before save.

7. Play the game by executing nw: ./nw
 

cold_arctus

Devoted Member
Sep 25, 2018
8,942
10,812
Turn your Windows RPGM Game into a native Linux version (Updated/Alternative)

1. Download nwjs-v0.35.3-linux-x64.tar.gz (or whatever is the current version, I can't add links, just google for it)
2. Extract: tar xvzf nwjs-v0.35.3-linux-x64.tar.gz
3. Go to the game you want to play: cd ~/Downloads/Elena\'s\ Life\ v0.26/
4. Copy nwjs to your game: cp -rf ~/Downloads/nwjs-v0.35.3-linux-x64/* .
5. Play the game by executing nw: ./nw

For some reason some games will not let me save when using this native linux 'port' (with wine it works). Then change the following:

6. Edit www/js/rpg_managers.js change the save path from /save/ to save/, find the line:

var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, '/save/');

and change it to:

var path = window.location.pathname.replace(/(\/www|)\/[^\/]*$/, 'save/');

notice the missing '/' before save.

7. Play the game by executing nw: ./nw
Did you try my solution one post above yours?
 
5.00 star(s) 3 Votes