Make BrawlCrate more Crossplatform
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:
- [ ] Using .NET Core for BrawlCrate and preferably .NET standard for BrawlLib
- [ ] Using a different UI Framework that is cross-platform
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:

A complete rewrite is in progress to address this.
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.
