Writing a second, cross-platform GUI for vAmiga? #525
Replies: 5 comments 8 replies
-
I have no experience with any of these, but I know that PCSX2 is planning to remove wxWidgets. I can't seem to find any post that detail their reasonings, but you can see that it's planned from pull requests like this. You might want to go to the dev channel on their discord and ask why. I hope this remains a "second" GUI, and does not become the primary. The native Mac interface is the main reason why I love vAmiga and VirtualC64... Speaking of the Mac GUI, I've been making a SwiftUI interface for vAmiga just for fun. I kind of stalled when I got to the table views, but now that tables are supported in SwiftUI 3 I might get stuck back in and try to finish it off. Here's what I've done so far, if you're interested... |
Beta Was this translation helpful? Give feedback.
-
Yes, if I ever write it, it will be a second GUI, at least as long as I stay on the Mac platform. If Apple does continue on the path it has taken (e.g., locking down macOS more and more, implementing their plans to actively scan our devices, etc.) I will say good bye at some point. I just run the SwiftUI version. Interestingly, it doesn't look like a real native macOS app. For some reason, many controls look different. SwiftUI is another Apple move I didn't really get. But maybe the technology is just still premature yet. |
Beta Was this translation helpful? Give feedback.
-
Well, I'd agree in principle, though I don't think that's what they are really doing. Federighi has said many times it's going to remain open. Also, terrible reporting has mis-represented what that CSAM thing actually does. And it looks like they are backing down a bit now, but in any case this is off topic...
Some of the controls do look a bit different, but this may be down to me messing around, trying different things. I couldn't adjust the size of the slider control, but I believe it's possible now. And I tried to use SF Symbols or (emoji) rather than images. They are definitely focusing on iOS over macOS right now. There are still lots of things that are unimplemented or are just terrible to use right now. But it's going to improve, and has already improved a huge amount since the first release. SwiftUI in general is great though. Not only is it easy to use, but it's cross-(Apple)platform (with a little bit of work). But again, this is off-topic. We should be talking about the cross-platform stuff.... |
Beta Was this translation helpful? Give feedback.
-
Hi Dirk, For the GUI, I think you do not need something really complex, so the lightest and simplest to build and use should be the best. I dealt with cross platform build sometimes and it is always a headache. In addition to the selection of the library used to manage the GUI you should consider an easy way to build to project in all the plate-forms with some kind of continuous integration. |
Beta Was this translation helpful? Give feedback.
-
Hi @prb28, vAmigaBM is basically dead, because SFML has turned out to be a dead end. It's not like SFML was a bad framework. It delivered what it promised, but I've learned that GUI elements such as menus, buttons, tables, and all kinds of other widgets are essential to provide a good emulator experience. In addition, vAmigaBM uses an outdated emulator core, and I don't think it's worth to make it work with the recent one. I am even thinking about deleting the repo. Regarding Windows builds, you might be interested in this thread: #611 Making the code base compatible with Windows is what I currently do. If everything works out as expected, it should be possible to build the core emulator without major issues in a couple of days (please note that there is no Windows GUI at the moment. It's all about compiling the core emulator in MSVC). |
Beta Was this translation helpful? Give feedback.
-
During the last couple of days, I was thinking about the pros and cons of writing a second GUI for vAmiga. The major goal would be to make vAmiga accessible on Windows and Linux.
A couple of month ago, I experimented with SDL and SFML which resulted in a proof-of-concept emulator called vAmigaBM (vAmiga Bare Metal). However, I feel that this is a dead-end. The major selling point of vAmiga is it’s sophisticated GUI (I think) and this selling point is just no longer there in vAmigaBM.
I browsed the web for a quick overview of cross-platform GUI frameworks. QT and GTK seem to be the two big players, but I also noticed that wxWidgets got some positive reviews.
My current understanding is:
From this quick analysis, wxWidgets seems like a suitable candidate, since I personally dislike apps that don’t exhibit a native look and feel. However, there are other requirements: The frameworks needs to be fast (at least for keyboard and mouse events), and it needs to be capable of handling complex UI interfaces such as the Inspector window with all of it’s sub panels.
Every feedback is welcome, especially if you are aware of any reasons why choosing wxWidgets would be the wrong decision.
Beta Was this translation helpful? Give feedback.
All reactions