kwsch / NHSE

Animal Crossing: New Horizons save editor
https://berichan.github.io/GetNHSE/
GNU General Public License v3.0
1.01k stars 260 forks source link

Native Linux Build? #650

Closed Vantablack3301 closed 2 months ago

Vantablack3301 commented 2 months ago

is it possible we'll see a native linux version down the line? it would be extremely helpful to those of us who play on the steam deck as we could edit our saves directly on the device.

i know c# is a platform agnostic language, but this specific project uses a handful of windows exclusive dependencies. ive heard monodevelop could help them run on linux, but it looks iffy at best from what ive seen. on top of that, i havent been able to get any builds of this working on linux via wine or otherwise. if i had to guess, there are some dll files that just arent compatible.

lottehime commented 2 months ago

I believe the issues with running it layered on Linux are mostly to do with some Mono bugs that have gone stale, and issues with Wine that also need to be fixed.

With regards to porting it over to Linux friendly libraries... I don't believe this is on anyone's to do list at this point - but I am sure most of us would all welcome a branch if you feel up to spearheading it.

lottehime commented 2 months ago

I am gonna close this one as not planned, but any other collabs please feel free to re-open if you wish to pursue the issue of a port to address this issue and other closed ones regarding mono crashes and UI issues.

kwsch commented 2 months ago

NHSE doesn't do anything special with windows-specific libraries or dlls besides the Windows Forms libraries that are OS specific; the latest versions of Wine (9.1+) should work just fine if you're able to get them installed.

lottehime commented 2 months ago

I should also have added that it currently works just fine under Proton 9.0 (beta) on SteamOS and can be launched as a non-steam game. You will need to use the touch screen, however. So, if you want to run it on Steam Deck, you can 👍.

Vantablack3301 commented 2 months ago

after trying it with proton 9.0 myself, i can confirm that i am still getting the same errors i had prior. did you use proton tricks to install any prerequisites?

Screenshot_20240429_122241

Vantablack3301 commented 2 months ago

upon further inspection i found this long string of errors with more detail

See the end of this message for details on invoking \njust-in-time (JIT) debugging instead of this dialog box.\n\n************** Exception Text **************\nSystem.ArgumentException: A null reference or invalid value was found [GDI+ status: InvalidParameter]
  at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x00098] in <b58d88bd041145279c2003cf306f84d5>:0 
  at System.Drawing.Image.get_FrameDimensionsList () [0x0000d] in <b58d88bd041145279c2003cf306f84d5>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.Image.get_FrameDimensionsList()
  at System.Drawing.ImageAnimator.CanAnimate (System.Drawing.Image image) [0x00005] in <b58d88bd041145279c2003cf306f84d5>:0 
  at System.Drawing.ImageAnimator.Animate (System.Drawing.Image image, System.EventHandler onFrameChangedHandler) [0x00000] in <b58d88bd041145279c2003cf306f84d5>:0 
  at System.Windows.Forms.PictureBox.Animate (System.Boolean animate) [0x00026] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.PictureBox.Animate () [0x00020] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.PictureBox.OnVisibleChanged (System.EventArgs e) [0x00009] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x0000d] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x000c4] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.SetVisibleCore (System.Boolean value) [0x00131] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.set_Visible (System.Boolean value) [0x00001] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.TabPage.set_Visible (System.Boolean value) [0x00001] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.TabPage.set_Visible(bool)
  at System.Windows.Forms.TabControl.UpdateTabSelection (System.Boolean updateFocus) [0x00073] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.TabControl.OnHandleCreated (System.EventArgs e) [0x0017a] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.WmCreate (System.Windows.Forms.Message& m) [0x0002c] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x004ce] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.TabControl.WndProc (System.Windows.Forms.Message& m) [0x001aa] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.OnMessage (System.Windows.Forms.Message& m) [0x00001] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x000b3] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 
  at System.Windows.Forms.NativeWindow.Callback (System.Windows.Forms.Message& m) [0x00025] in <ef3dd1b1af11490e89408e0d9c28d1f0>:0 

\n************** Loaded Assemblies **************\nmscorlib\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/4.5/mscorlib.dll\n----------------------------------------\nNHSE.WinForms\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/home/deck/Documents/NHSE/NHSE/NHSE.WinForms.exe\n----------------------------------------\nSystem.Windows.Forms\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\n----------------------------------------\nSystem\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll\n----------------------------------------\nSystem.Drawing\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\n----------------------------------------\nAccessibility\n    Assembly Version: 4.0.0.0\n    Win32 Version: \n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll\n----------------------------------------\nSystem.Configuration\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll\n----------------------------------------\nWineMono.I18N\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/WineMono.I18N/4.0.0.0__0738eb9f132ed756/WineMono.I18N.dll\n----------------------------------------\nWineMono.I18N.West\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/WineMono.I18N.West/4.0.0.0__0738eb9f132ed756/WineMono.I18N.West.dll\n----------------------------------------\nNHSE.Core\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/home/deck/Documents/NHSE/NHSE/NHSE.Core.dll\n----------------------------------------\nSystem.Core\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll\n----------------------------------------\nNHSE.Sprites\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/home/deck/Documents/NHSE/NHSE/NHSE.Sprites.dll\n----------------------------------------\nWineMono.Security\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/WineMono.Security/4.0.0.0__0738eb9f132ed756/WineMono.Security.dll\n----------------------------------------\nSystem.Xml\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///Z:/home/deck/.local/share/Steam/steamapps/common/Proton%209.0%20(Beta)/files/share/wine/mono/wine-mono-8.1.0/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll\n----------------------------------------\n\n************** JIT Debugging **************\n
Vantablack3301 commented 2 months ago

even after ignoring the errors and continuing to the actual save editor, i can only really edit for a little bit before wine debugger comes up and it crashes

lottehime commented 2 months ago

I hate to be the "works on my system guy", but this does not happen for me. No protontricks. Like kwsch said, maybe give a newer version of Wine a try if you want to get it working on your system.