PDA

View Full Version : Qt-based frontend for PUAE


Wicked_Digger
04 October 2010, 13:37
My endeavor has raised interest and discussion, so I decided to start a new thread.

Sources of the project are here:
http://github.com/wdigger/PUAE
it's a fork of PUAE, it will get all the changes PUAE, and later, when the problem with configuration will be solved, it will be possible to merge with PUAE (this is at the discretion of GnoStiC).

Some explanations:
1. I tried to minimally interfere with the code PUAE, but now had to do a few workarounds, which must continue to remove, or to make consistent.

2. In the folder gui-qt is Qt-like project QUAE.pro that can be used to develop GUI without building PUAE. I'm working with a GUI on QtCteator (Windows, Linux, MacOS).

3. There is a class CAbstractVirtualSystem which serves as an adapter between the UAE and the GUI, ie, GUI should not directly use the UAE. Qt project uses a stub inherit from this class, consisting of PUAE going to class, which really works.

4. The only part that still uses the SDL - sound. I plan to continue and make it to Qt (phonon).

I built this project only on MacOS SnowLeo, but we must try to build on Linux (Ubuntu / Kubuntu?), I think it should not cause problems.

GnoStiC
11 October 2010, 13:20
and here is my QT version (winuae gui clone), screenshot is from ubuntu..

Torren
11 October 2010, 14:23
Wow, that is really great stuff! Keep it up guys!

waal
11 October 2010, 18:52
Wooow that's really cool. When will we have an OS X buid ?

Jimbo
11 October 2010, 19:19
Wow that looks amazing.

Nice work on this :D

Nolendil
12 October 2010, 01:06
Thanks to both of you :)

Hungry Horace
12 October 2010, 01:53
looks neat!

I think it will actually make PUAE as a whole much easier to test, as users will be able to start with fresh configs, rather than butchering E-UAE configs.

Dic_Ray
12 October 2010, 07:24
and here is my QT version (winuae gui clone), screenshot is from ubuntu..

Oh yeh, that's absolutely fantastic.
I would love to see a complete working native "WinUAE" on my MacBook Pro. Would be great if Toni Wilen and the PUAE developer directly cooperate. Please let this dream come true.

Thank you soo much Gnostic!

slaapliedje
12 October 2010, 16:25
Agreed! Well, technically you could try to compile the Qt version on Windows and see if it works. Not sure if it would even compile though. Cross-platform goodness rules.

slaapliedje

chiark
12 October 2010, 16:41
gnostic, if you need a beta tester on the Mac let me know :D

GnoStiC
12 October 2010, 19:43
ok then, here is a macosx screenshot :)

nexusle
12 October 2010, 20:50
gnostic, if you need a beta tester on the Mac let me know :D

+1

@GnoStiC

the first evidence that you are working on a mac os x build ;)

is there a binary for us?

waal
12 October 2010, 21:17
ok then, here is a macosx screenshot :)

Did you see that ? Mac users will benefit of much more buttons than any peecee users.:D

Seriously, thank you for this. :bowdown

Wicked_Digger
12 October 2010, 22:07
and here is my QT version (winuae gui clone), screenshot is from ubuntu..

Is this based on my stream, or you make your own uae-to-qt adapter?
Do you plan to commit the changes in to my stream? Do I need to do for you the relevant access rights?

GnoStiC
12 October 2010, 22:21
soon :)

+1
@GnoStiC
the first evidence that you are working on a mac os x build ;)
is there a binary for us?

GnoStiC
12 October 2010, 22:23
it's from scratch, i'll merge it with my master git.

Is this based on my stream, or you make your own uae-to-qt adapter?
Do you plan to commit the changes in to my stream? Do I need to do for you the relevant access rights?

GnoStiC
12 October 2010, 22:25
@all:
it's just the gui. there is still sound, video, threading, input handling etc so you'll have to wait a little longer i'm afraid.

EricG
13 October 2010, 06:03
@all:
it's just the gui. there is still sound, video, threading, input handling etc so you'll have to wait a little longer i'm afraid.


Still .. this is fantastic! ... :great:great

Can I presume that somehow the backend uae core/gui-front end will be somewhat separate, so as they forge ahead with improvements in WinUAE it will be easy to incorporate/roll those advances into your version? Or rephrased, atleast they way your doing it will allow for easy-to-incorporate future enhancements from the WinUAE project..? (I haven't really look at the code base at the same level as you obviously have, so this might just be wishful thinking :))

Still though anything you guys do will be a huge benefit to the UAE community at large and thank you to all who are trying to move UAE outside of Windows world forward .. !

gilgamesh
13 October 2010, 10:08
Awesome...

Wicked_Digger
13 October 2010, 11:07
it's from scratch, i'll merge it with my master git.

What you did not like my solution?
I would like to immediately determine the basis for further development, I think that if we work together, achieve better results.
As I have said, for me, no matter by whom and how to make the interface. For the most part for me is only important to the debugger, which is hardly interesting to anyone else.
I'm starting work on the interface came from simple things:
- Rapid onset (wellcome screen)
- Usually only one window is required to run

Wicked_Digger
13 October 2010, 11:26
Still .. this is fantastic! ... :great:great

Can I presume that somehow the backend uae core/gui-front end will be somewhat separate, so as they forge ahead with improvements in WinUAE it will be easy to incorporate/roll those advances into your version? Or rephrased, atleast they way your doing it will allow for easy-to-incorporate future enhancements from the WinUAE project..? (I haven't really look at the code base at the same level as you obviously have, so this might just be wishful thinking :))

Still though anything you guys do will be a huge benefit to the UAE community at large and thank you to all who are trying to move UAE outside of Windows world forward .. !

I think that question is a bit wrong address ...
Historically, the UAE has a good partition into a portable and platform-dependent part, thanks for the founders of this project. Unfortunately WinUAE cloves from this ideology, this project is only for Windows, some of the earlier portable parts, now contain the Windows calls.
It is absolutely clear that the developers for *nix systems will never go along the path of WinUAE, and easy code transfer is impossible.

EricG
13 October 2010, 17:08
"some of the earlier portable parts, now contain the Windows calls"
"and easy code transfer is impossible."


That is unfortunate and tragic ..

Toni Wilen
13 October 2010, 17:35
...

Perhaps because no one has cared or said anything about it previously? (Note that it is WinUAE after all, I don't remember having any kind of contract to keep it portable. Last real attempt died when R.Drummond disappeared and previous one when original author become bored or something.)

Which functions and where?

btw, are "we" (whatever that means, I am not sure) going to work together or do you just want to complain without any attempts to be productive? (Interestingly someone ignored that most of new features I have added are fully portable not counting low level functions that can't be portable but they are always in separate sources, maybe I am paranoid but I think something is missing..)

In other words, should I ignore this ~"attempt number N to make this stupid thing more portable" (which does not include GUI, not yet) or should I go away and keep quiet and keep working with WinUAE as usual?

Wicked_Digger
13 October 2010, 18:51
...

Perhaps because no one has cared or said anything about it previously? (Note that it is WinUAE after all, I don't remember having any kind of contract to keep it portable. Last real attempt died when R.Drummond disappeared and previous one when original author become bored or something.)

I'm not saying that's bad, I simply stated a fact. The man asked how you can migrate the code, I said that it is almost impossible to do automatically. Where am I wrong?

Which functions and where?

Windows exception handling for ex. DX functions.

btw, are "we" (whatever that means, I am not sure) going to work together or do you just want to complain without any attempts to be productive?

I was not going to extend the functionality or do something in the kernel UAE. I have enough functionality UAE for 10 years. I need an effective (convenience and clarity, I think an integral part of efficiency) debugger, and I'm doing it. My work on Qt frontend is a necessity. I can attach it to the UAE, E-UAE, PUAE.
I was asked to open the code, I did it. People ask me whether it bring him closer to WinUAE, I answer that it is hardly possible.
If you're willing to spend time working on the portability, then it will be very interesting (mostly for GnoStiC) and I can also take part in this project.

(Interestingly someone ignored that most of new features I have added are fully portable not counting low level functions that can't be portable but they are always in separate sources, maybe I am paranoid but I think something is missing..)

It is noticeable, thanks for that.

In other words, should I ignore this ~"attempt number N to make this stupid thing more portable" (which does not include GUI, not yet) or should I go away and keep quiet and keep working with WinUAE as usual?

GnoStiC trying to move the features WinUAE on *nix platforms. I make a Qt frontend based on the code PUAE.
Are you interested? (I think so, once you view these posts)

Toni Wilen
13 October 2010, 20:53
Windows exception handling for ex. DX functions.

I am not sure what you mean by Windows exceptions but at least DirectX (if DX = DirectX) has been used since Brian King's WinUAE versions. WinUAE is never going to use any portable gfx/sound/whatever API because they all are less flexible than DirectX.

About QT GUI: QT is one of the "acceptable" GUIs (uses native GUI elements = does not look "alien") but it is too early for that. Maybe in 3.x or 4.x :)

WinUAE GUI will be updated to something portable. Someday.

(I think I am finally understanding what are you actually doing, thanks for explaining :D)

Wicked_Digger
18 October 2010, 18:10
it's from scratch, i'll merge it with my master git.

What you did not like my solution?
I would like to immediately determine the basis for further development, I think that if we work together, achieve better results.
As I have said, for me, no matter by whom and how to make the interface. For the most part for me is only important to the debugger, which is hardly interesting to anyone else.
I'm starting work on the interface came from simple things:
- Rapid onset (wellcome screen)
- Usually only one window is required to run

gilgamesh
18 October 2010, 20:09
For the most part for me is only important to the debugger


Could you elaborate on the nature of your debugger? Is it comparable to WinUAE's or something specialized for a certain task? (Just out of curiosity. ;))

Wicked_Digger
18 October 2010, 20:40
Could you elaborate on the nature of your debugger? Is it comparable to WinUAE's or something specialized for a certain task? (Just out of curiosity. ;))

At the first stage of "my" ( :lol ) debugger, this is only a UI for the debugger built into the UAE. I have the opportunity to make a UI more convenient than WinUAE, and I actively use (dockable windows, scrolling, etc.). I want (as possible) to approach the functionality of modern IDE debuggers (VS for example).
In the process, I am looking for an opportunity to improve the debugger, but it is quite difficult, because requires a deep knowledge of the internal device AmigaOS (for example - which has the structure "seglist" returned by LoadSeg).

chiark
18 October 2010, 22:00
What you did not like my solution?


I think there's two fundamentally different yet similar approaches here.

gnostic has built a QT UI that allows access to everything as WinUAE does: that'll give maximum functionality in minimum time. Given that PUAE is about bringing the best of WinUAE to other platforms, I think that's a great thing to do and I can't wait for this.

What you're building is a new approach to the GUI. Again, this is a great thing to do but I suspect it'll require a lot more work and it'll require a little bit more integration into the core of WinUAE. This is a worthwhile project too.

Both have their purpose: gnostic's is, to me, the one that'll get WinUAE functionality onto other platforms quickly. I can't wait to use it!

Yours is the one that'll change the approach of all UAE emulators. I can't wait to see where this goes and, ultimately, get a revolution in the GUI.:great

Wicked_Digger
19 October 2010, 02:52
I think there's two fundamentally different yet similar approaches here.

gnostic has built a QT UI that allows access to everything as WinUAE does: that'll give maximum functionality in minimum time. Given that PUAE is about bringing the best of WinUAE to other platforms, I think that's a great thing to do and I can't wait for this.

What you're building is a new approach to the GUI. Again, this is a great thing to do but I suspect it'll require a lot more work and it'll require a little bit more integration into the core of WinUAE. This is a worthwhile project too.

Both have their purpose: gnostic's is, to me, the one that'll get WinUAE functionality onto other platforms quickly. I can't wait to use it!

Yours is the one that'll change the approach of all UAE emulators. I can't wait to see where this goes and, ultimately, get a revolution in the GUI.:great

Unfortunately, I probably would not have sufficient analytical ability to make such profound conclusions from a single screen shot ;)
My question was addressed to the author's name, because I do not see the code.
I am well aware that I alone will hardly be able to quickly make a finished product, for this reason that I would be happy to work in a team. But to work together, we would like as soon as possible to agree on basic approaches. This applies more to the part of the architectural decisions.
The fact that the dialogues and other snap-in can be done really quickly using Qt, but it is possible that the inconsistency of architectural decisions will lead to inability to use the achievements of each other in the future. This will be a great loss.

GnoStiC
19 October 2010, 07:39
@wd:
frankly, i liked your approach to the gui, i believe your's would be more user friendly.

BUT
my qt version is a 1on1 winuae clone as i want to make sure i have all the features working as they should be (as they are in winuae).. i even have the control object names same as winuae.. this makes sync'ing and browsing easier for me..

chiark
19 October 2010, 11:22
Unfortunately, I probably would not have sufficient analytical ability to make such profound conclusions from a single screen shot
It's fairly obvious what gnostic is doing from the screenshot, and the reasons for PUAE are exceptionally well known... I think you've also stated a few times the way that you'd like to take the GUI and what you think is needed?

But anyhow, that's besides the point. Good luck to both of you.

but it is possible that the inconsistency of architectural decisions will lead to inability to use the achievements of each other in the future.
PUAE is trying to port WinUAE enhancements back to UAE. That'll mean that for the moment the architecture is what it is.

If a universal GUI is to exist, it needs to go back into UAE too, so it makes sense to me to get PUAE working well with the GUI architecture as-is, and as a separate strand of work go into the re-architecture of the GUI.

I'll shut up now as it seems you want to discuss this with gnostic only...