Nauja / SoGMAPI

Modding API for Secret of Grindea
GNU Lesser General Public License v3.0
3 stars 0 forks source link

Linux/SteamOS Installer Support #7

Open Fokson opened 1 year ago

Fokson commented 1 year ago

In the 0.1.2 release, there is an installer for Windows but the Linux/MacOS installers have no data in the 'internal folder' to work with, and thus don't function. Is support for this planned in the future? I understand it could be built manually but in my particular case I don't have access to a compiler for a while, and playing on a Steam Deck would be ideal. Thanks!

Nauja commented 1 year ago

Indeed, most probably I didn't included Linux and Mac because I couldn't build for all of them, but I will try to make a new release with everything included

Nauja commented 1 year ago

I installed Steam on WSL2 just to find out that I can't install SoG on Linux. You see, this repository is based on SMAPI made for Stardew Valley that has a Linux version. That's why there are linux related files in the repository, but as SoG is not available on Linux I don't think it can work the same way. Sorry for including Linux/MacOS files that are misleading, and as for the Steam Deck and Proton, I don't know yet how it works and what it means to build for it, but I'll take a look

Nauja commented 1 year ago

Ok, I tried some things with WSL2 + Steam + Proton, but it's hard to tell if it doesn't work because of SMAPI or because of having Proton on WSL2. What I suggest you is to try what's described here https://stardewvalleywiki.com/Modding:Installing_SMAPI_on_Steam_Deck under Stardew Valley in Proton . Just adding the exe of SoGMAPI into your Steam library, and configuring it to launch with Proton. Tell me how it goes :)

Fokson commented 1 year ago

The good news is, it ran! The bad: it crashed. I can't find the log output to upload, but the key bit of information from the crash was "The Microsoft.Xna.Framework.TitleContainer object doesn't have a 'GetCleanPath' static method", at SogModdingAPI.Framework.Reflection.Reflector.GetMethod. Not sure if this is something in your ballpark or a problem with SMAPI, or just something I did wrong.

Nauja commented 1 year ago

So we got exactly the same error. Users of SMAPI seem to be able to run it with Proton, so probably something with SoG or SoGMAPI idk. Need to investigate that

Nauja commented 1 year ago

I'm trying to update SoGMAPI with the latest release of SMAPI but as expected it doesn't go well. Stardew Valley support MonoGame and Net 5.0 while SoG is stuck with Xna 4.0 and Net 4.5 that are pretty much outdated.

But after that I tried something promising, in fact I thought that the C# error was probably because the Xna dll installed is not the correct version. So I tried to copy and paste Microsoft.Xna.Framework.dll, Microsoft.Xna.Framework.Game.dll, Microsoft.Xna.Framework.Graphics.dll and Microsoft.Xna.Framework.Xact.dll in the Steam directory containing SoG (plus in sogmapi-internal just to be sure), and it seems that I don't have the error anymore.

However I now have the error "no suitable graphic card found" (a prompt opening) and "lavapipe is not a conformant vulkan implementation" (in the console). I think this is probably because I'm using WSL2 and there is some configuration missing, but maybe for you on a real Steam Deck it may work 🤔

Fokson commented 1 year ago

Sorry for the delay, I've been away for work for a while.

I can try what you described, but I'm not sure where you copied the aforementioned files from. I tried installing Stardew but they don't seem to exist within its folder either.

Nauja commented 1 year ago

Hi, you have to copy these files from the XNA installation folder.

For me I searched in the registry for XNA and found the path C:\WINDOWS\Microsoft.Net\assembly\GAC_32\Microsoft.Xna.Framework\.