Replies: 8 comments 12 replies
-
Blazor WASM: won't work due to certain cryptography libraries being unsupported: codemonkey85/PKMDS-Blazor#12 PKHeX.Core is available on NuGet, and anyone can pull the package for use in whatever rewrite they want to attempt. The games are continuously updating, so the majority of the work is spent on PKHeX.Core rather than the GUI portion of the program. The GUI works well enough, even though it is the oldest & most un-refined code in the codebase... the PKM editor and slot manipulation is an incredibly tangled mess, and there's >100 forms/controls that would need to be addressed. I don't see any compelling reason to spend the effort rewriting the GUI into another framework, when time is better spent on other areas / projects. |
Beta Was this translation helpful? Give feedback.
-
I also just want to add that the MAUI project is open to contributions. |
Beta Was this translation helpful? Give feedback.
-
I just want a native Linux version so I don't have to deal with using proton on my SteamDeck (and as well as still waiting for .net 8 support) |
Beta Was this translation helpful? Give feedback.
-
I would be interested and i'm considering doing it. |
Beta Was this translation helpful? Give feedback.
-
also would love a linux native version... and it is probably qt or gtk for graphical toolkit for the better options... though shadow is not a great graphical program developer so can't easily do this themselves |
Beta Was this translation helpful? Give feedback.
-
We need Linux wizards to step on and make a Linux version. |
Beta Was this translation helpful? Give feedback.
-
Currently, there is a project trying to port Mono's WinForms to dotnet - however it's not very stable. I've messed around with PKHeX and this ported version because I was curious about how much effort would it be to enhance PKHeX to be able to run on Linux with Mono's implementation - and after many adjustments, I was finally able to run the UI project PKHeX.WinForms locally on my Ubuntu machine. However it's very glitchy (e. g. these large tooltips are completely black), some buttons do not have visible text and when you create a new pokemon and try to add it to a box, the app will crash in method DoDragDrop when I try to drag the created pokemon into a box; right-click -> Set will cause a ArgumentNullException as it is unable to get the underlying picturebox via WinFormsUtil.GetUnderlyingControl (in ContextMenuSAV, line 139). I think it is not worth the effort to try to port PKHeX with its Winforms to other platforms and since the other option to use PKHeX on NonWindows platforms is to use a virtual machine, there is no other way as to rewrite the UI in the long run (maybe in an own project that works independently from PKHeX) using a modern UI framework, such as Avalonia. Like it was previously said, PKHeX.Core is separated from the whole UI topic and is the technical foundation for the whole application's logic (open save files, perform changes to those files and save them back). For those who might be interested in the porting topic, here is a short summary of my changes I did: Playing Sounds: In my opinion, these stability issues are the blocking points and the reason why I would recommend to create a new GUI using Avalonia. |
Beta Was this translation helpful? Give feedback.
-
sadly pkhex is not made by the pokefinder devs as those seem to have great linux support |
Beta Was this translation helpful? Give feedback.
-
Hi there! I'm a huge PKHeX fan, and I really appreciate all the effort you've put into it. I especially love that you've moved the core logic to the
PKHeX.Core
package, and are up-to-date with the latest release of .NET. I've been thinking a lot lately about cross-platform .NET apps, especially having recently purchased a macOS device.Have you thought about how you might like to see PKHeX become cross-platform in the future?
I ask because I'm willing to contribute towards making that possible, but I strongly feel that maintaining a separate fork is going to be a difficult task, especially given how complex the UI needs to be to accommodate all the functionality that PKHeX provides. I know that you've explored tools like Xamarin.Forms in the past, so it definitely seems like something you might be interested in.
One particular approach I've been toying with is performing an incremental migration to Blazor Hybrid, since Blazor views can be embedded into a Windows Forms application. With that approach, you wouldn't need to completely rewrite the app from scratch in a single go, and could instead migrate one form at a time. For example, you could start by migrating the
MoveShopEditor
form to Blazor Hybrid, keeping all the other forms as-is. The biggest downside I see with this approach is that Blazor, being web-based, doesn't have some of the more complex UI controls that Windows Forms does (such as tabs, sortable tables, etc.). There are component libraries out there to make that easier though! Once every form has been converted to Blazor, you can then replace the shell app with .NET MAUI, which also support Blazor. That'd give you both Windows and macOS compatibility, along with a path forward to replace the Blazor views with native views should you be interested. Alternatively, if all of the UI is written in Blazor, it's probably not too much more effort to use Blazor WASM to make a web version of PKHeX.As a sort of middle ground approach, you could also add a new
PKHeX.MAUI
project, which could be a full rewrite in .NET MAUI (using Blazor, native UI, or something like Uno). I think having the cross-platform project be "official" and in the main repo would be a good way to make sure things stay somewhat in sync. The difficult thing there is that rebuilding from scratch would probably take a significant amount of effort before it's viable for even minor edits, so there might not be much incentive to work on it. I also know there's already a community implementation in MAUI, so I could understand not wanting to spend a lot of effort making the exact same thing.All of this is basically to say I'd love to help you make PKHeX cross-platform in whatever way you're most comfortable with!
Beta Was this translation helpful? Give feedback.
All reactions