soopercool101 / BrawlCrate

BrawlBox/BrawlTools Fork, Wii File Editor
https://discord.gg/s7c8763
GNU Lesser General Public License v3.0
148 stars 38 forks source link

Make BrawlCrate more Crossplatform #41

Open Miepee opened 2 years ago

Miepee commented 2 years ago

Is your feature request related to a problem? Please describe. Currently this tool is locked to Windows only, due to it relying heavily on .NET Framework and Windows Forms.

Describe the solution you'd like Make it possible to use this on Linux/MacOS. This would require:

For what it's worth, I currently cannot use WINE nor MONO on Linux. Haven't tested anything on Mac. Wine crashes with the following on boot:

Crash message ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'BrawlCrate.Program' threw an exception. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array. at System.Configuration.CustomizableFileSettingsProvider.CreateUserConfigPath () [0x0012c] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.CustomizableFileSettingsProvider.CreateExeMap () [0x0000b] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.CustomizableFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection collection) [0x00000] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.LocalFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) [0x00000] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.ApplicationSettingsBase.CacheValuesByProvider (System.Configuration.SettingsProvider provider) [0x0005b] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.ApplicationSettingsBase.set_Item (System.String propertyName, System.Object value) [0x00058] in <0c924620d2cd4b85a989ca168d44cf08>:0 at BrawlCrate.Properties.Settings.set_UpdateSettings (System.Boolean value) [0x00000] in <601f7ccf9aef49e9a0bfdce9979dc368>:0 at BrawlCrate.Program..cctor () [0x00146] in <601f7ccf9aef49e9a0bfdce9979dc368>:0 --- End of inner exception stack trace --- [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'BrawlCrate.Program' threw an exception. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array. at System.Configuration.CustomizableFileSettingsProvider.CreateUserConfigPath () [0x0012c] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.CustomizableFileSettingsProvider.CreateExeMap () [0x0000b] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.CustomizableFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection collection) [0x00000] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.LocalFileSettingsProvider.GetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyCollection properties) [0x00000] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.ApplicationSettingsBase.CacheValuesByProvider (System.Configuration.SettingsProvider provider) [0x0005b] in <0c924620d2cd4b85a989ca168d44cf08>:0 at System.Configuration.ApplicationSettingsBase.set_Item (System.String propertyName, System.Object value) [0x00058] in <0c924620d2cd4b85a989ca168d44cf08>:0 at BrawlCrate.Properties.Settings.set_UpdateSettings (System.Boolean value) [0x00000] in <601f7ccf9aef49e9a0bfdce9979dc368>:0 at BrawlCrate.Program..cctor () [0x00146] in <601f7ccf9aef49e9a0bfdce9979dc368>:0 ```

While mono crashes as soon as I open a file: image

soopercool101 commented 2 years ago

A complete rewrite is in progress to address this.

Sonico98 commented 2 years ago

You can try using Bottles. It creates a WINE Prefix with some DLL overrides that allow BrawlCrate to run. I've only noticed a few graphical issues so far. image