KillzXGaming / Switch-Toolbox

A tool to edit many video game file formats
GNU General Public License v3.0
971 stars 155 forks source link

Linux support? #324

Open ColonelThirtyTwo opened 3 years ago

ColonelThirtyTwo commented 3 years ago

Is linux supported? If not, can it be?

Running with mono fails:

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'Toolbox.Library.Runtime' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Collections.Generic.List`1' threw an exception. ---> System.TypeLoadException: Could not load array element type, due to: Could not load type of field 'Toolbox.Library.Runtime+ViewportEditor:editableDrawables' (0) due to: Could not load file or assembly 'GL_EditorFramework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. assembly:/home/col/Downloads/Toolbox-Latest/Toolbox.Library.dll type:ViewportEditor member:(null)
  at System.Collections.Generic.List`1[T]..cctor () [0x00000] in <efe941bb62534dc3a62ceb1a818964a0>:0 
   --- End of inner exception stack trace ---
  at Toolbox.Library.Runtime..cctor () [0x00078] in <11636bc7050943f1a3034ab989416d0f>:0 
   --- End of inner exception stack trace ---
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'Toolbox.Library.Runtime' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Collections.Generic.List`1' threw an exception. ---> System.TypeLoadException: Could not load array element type, due to: Could not load type of field 'Toolbox.Library.Runtime+ViewportEditor:editableDrawables' (0) due to: Could not load file or assembly 'GL_EditorFramework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. assembly:/home/col/Downloads/Toolbox-Latest/Toolbox.Library.dll type:ViewportEditor member:(null)
  at System.Collections.Generic.List`1[T]..cctor () [0x00000] in <efe941bb62534dc3a62ceb1a818964a0>:0 
   --- End of inner exception stack trace ---
  at Toolbox.Library.Runtime..cctor () [0x00078] in <11636bc7050943f1a3034ab989416d0f>:0 
   --- End of inner exception stack trace ---

Mono Version:

Mono JIT compiler version 6.12.0 (makepkg/a22ed3f094e Tue Dec 22 06:01:50 PM -03 2020)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    Interpreter:   yes
    LLVM:          supported, not enabled.
    Suspend:       hybrid
    GC:            sgen (concurrent by default)

On Arch linux.

melsbacksfriend commented 3 years ago

I managed to get it running on WINE on Ubuntu by installing a few dependencies with Winetricks. I couldn't get it to play back animations tho.

kobligo commented 3 years ago

@melsbacksfriend Which dependencies? Ubuntu 20.04 here. I got it to run via 64bit wine at least, but it won't show any model entries in the the content tree when I open a BOTW NPC's sbfres. It's only listing the textures. The data folder GUI is definitely causing a lot of problems on Linux.

Slluxx commented 3 years ago

im interested in this too

kargaroc commented 3 years ago

This is really important for me

edbefee3-3888-462a-9411-741b7e9eb54e commented 3 years ago

i'm on ubuntu 20.10 and it works for me, all i neded was to get the right .net framework ( i think) and it works for me i have an intel core i5-5200u and 8gb of ram btw native linux would be nice

lunakittyyy commented 2 years ago

What .NET framework version?

edbefee3-3888-462a-9411-741b7e9eb54e commented 2 years ago

4.6.2

XDM-Inc commented 2 years ago

I managed to get it running on WINE on Ubuntu by installing a few dependencies with Winetricks. I couldn't get it to play back animations tho.

so i am not alone i see. i am having this issue here on arch linux, animations freeze. BUT theirs some work around i found. in bottles it freezes, on stock vanilla it does not. and to make it work on bottles you have to click launch with terminal and it works. dont know why. also might work with other prefix managers (playonlinux, lutris etc.. ) or finally you can make a bat file that launches switch toolbox and launch that and the animations will work

electikos commented 1 month ago

How to run it ? dotnet is 8.0.110 and my wine have mono when I run wine ./Toolbox.exe or wine Toolbox.exe in the terminal in the folder I get this :

Unhandled Exception: System.ArgumentException: The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound] at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x001ce] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.FontFamily..ctor (System.Drawing.Text.GenericFontFamilies genericFamily) [0x0004d] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at (wrapper remoting-invoke-with-check) System.Drawing.FontFamily..ctor(System.Drawing.Text.GenericFontFamilies) at System.Drawing.FontFamily.get_GenericSansSerif () [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font.CreateFont (System.String familyName, System.Single emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte charSet, System.Boolean isVertical) [0x00011] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font..ctor (System.String familyName, System.Single emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, System.Boolean gdiVerticalFont) [0x00011] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font..ctor (System.String familyName, System.Single emSize, System.String systemName) [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at (wrapper remoting-invoke-with-check) System.Drawing.Font..ctor(string,single,string) at System.Drawing.SystemFonts.get_MenuFont () [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Windows.Forms.ToolStripManager.get_DefaultFont () [0x00039] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.get_Font () [0x0003a] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.CommonLayoutOptions () [0x00048] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripDropDownButton+ToolStripDropDownButtonInternalLayout.CommonLayoutOptions () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.GetLayoutData () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.PerformLayout () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.OnBoundsChanged () [0x00019] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripDropDownItem.OnBoundsChanged () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.SetBounds (System.Drawing.Rectangle bounds) [0x00038] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripOverflowButton.SetBounds (System.Drawing.Rectangle bounds) [0x00075] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.set_Size (System.Drawing.Size value) [0x00011] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip.get_OverflowButton () [0x00074] in <e0259ba767c84223aed6e194cfadaa13>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStrip.get_OverflowButton() at System.Windows.Forms.ToolStripSplitStackLayout.get_OverflowButtonSize () [0x0001e] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripSplitStackLayout.LayoutHorizontal () [0x0005c] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripSplitStackLayout.LayoutCore (System.Windows.Forms.Layout.IArrangedElement container, System.Windows.Forms.LayoutEventArgs layoutEventArgs) [0x000a9] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Layout.LayoutEngine.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs layoutEventArgs) [0x0001d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00041] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0002d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x0008f] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.LayoutEventArgs args) [0x0008d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.PerformLayout () [0x0000f] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.ResumeLayout (System.Boolean performLayout) [0x00079] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip..ctor () [0x0023e] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.MenuStrip..ctor () [0x00007] in <e0259ba767c84223aed6e194cfadaa13>:0 at Toolbox.Library.Forms.STMenuStrip..ctor () [0x00000] in <5dfe8399eabf456086fd2110c4f6db19>:0 at (wrapper remoting-invoke-with-check) Toolbox.Library.Forms.STMenuStrip..ctor() at Toolbox.MainForm.InitializeComponent () [0x0001b] in <500642b64f7e4c409a6baf7fa24a8ac5>:0 at Toolbox.MainForm..ctor () [0x00044] in <500642b64f7e4c409a6baf7fa24a8ac5>:0 at (wrapper remoting-invoke-with-check) Toolbox.MainForm..ctor() at Toolbox.Program.Main () [0x00112] in <500642b64f7e4c409a6baf7fa24a8ac5>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound] at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x001ce] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.FontFamily..ctor (System.Drawing.Text.GenericFontFamilies genericFamily) [0x0004d] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at (wrapper remoting-invoke-with-check) System.Drawing.FontFamily..ctor(System.Drawing.Text.GenericFontFamilies) at System.Drawing.FontFamily.get_GenericSansSerif () [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font.CreateFont (System.String familyName, System.Single emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte charSet, System.Boolean isVertical) [0x00011] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font..ctor (System.String familyName, System.Single emSize, System.Drawing.FontStyle style, System.Drawing.GraphicsUnit unit, System.Byte gdiCharSet, System.Boolean gdiVerticalFont) [0x00011] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Drawing.Font..ctor (System.String familyName, System.Single emSize, System.String systemName) [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at (wrapper remoting-invoke-with-check) System.Drawing.Font..ctor(string,single,string) at System.Drawing.SystemFonts.get_MenuFont () [0x00000] in <cf01cf071e764982a0f6bb8c6f5517e3>:0 at System.Windows.Forms.ToolStripManager.get_DefaultFont () [0x00039] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.get_Font () [0x0003a] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.CommonLayoutOptions () [0x00048] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripDropDownButton+ToolStripDropDownButtonInternalLayout.CommonLayoutOptions () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.GetLayoutData () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItemInternalLayout.PerformLayout () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.OnBoundsChanged () [0x00019] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripDropDownItem.OnBoundsChanged () [0x00001] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.SetBounds (System.Drawing.Rectangle bounds) [0x00038] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripOverflowButton.SetBounds (System.Drawing.Rectangle bounds) [0x00075] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripItem.set_Size (System.Drawing.Size value) [0x00011] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip.get_OverflowButton () [0x00074] in <e0259ba767c84223aed6e194cfadaa13>:0 at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStrip.get_OverflowButton() at System.Windows.Forms.ToolStripSplitStackLayout.get_OverflowButtonSize () [0x0001e] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripSplitStackLayout.LayoutHorizontal () [0x0005c] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStripSplitStackLayout.LayoutCore (System.Windows.Forms.Layout.IArrangedElement container, System.Windows.Forms.LayoutEventArgs layoutEventArgs) [0x000a9] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Layout.LayoutEngine.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs layoutEventArgs) [0x0001d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00041] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0002d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x0008f] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.LayoutEventArgs args) [0x0008d] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.PerformLayout () [0x0000f] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.Control.ResumeLayout (System.Boolean performLayout) [0x00079] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.ToolStrip..ctor () [0x0023e] in <e0259ba767c84223aed6e194cfadaa13>:0 at System.Windows.Forms.MenuStrip..ctor () [0x00007] in <e0259ba767c84223aed6e194cfadaa13>:0 at Toolbox.Library.Forms.STMenuStrip..ctor () [0x00000] in <5dfe8399eabf456086fd2110c4f6db19>:0 at (wrapper remoting-invoke-with-check) Toolbox.Library.Forms.STMenuStrip..ctor() at Toolbox.MainForm.InitializeComponent () [0x0001b] in <500642b64f7e4c409a6baf7fa24a8ac5>:0 at Toolbox.MainForm..ctor () [0x00044] in <500642b64f7e4c409a6baf7fa24a8ac5>:0 at (wrapper remoting-invoke-with-check) Toolbox.MainForm..ctor()

XDM-Inc commented 1 month ago

How to run it ? dotnet is 8.0.110 and my wine have mono when I run wine ./Toolbox.exe or wine Toolbox.exe in the terminal in the folder I get this :

You can't have both mono net installed at the same time as whenever you install one one replaces the other. I was able to get it up and running by making sure that I have at least the semi latest.net over 4.4 and also having gdiplus installed