[Coco] VCC Update
James Ross
jrosslist at outlook.com
Thu Apr 13 15:42:30 EDT 2017
Bill Pierce wrote:
> James, keep me updated on this. It sounds like you're moving in
> the right direction.
Will do Bill! Thanks.
> Though the original idea was to drop directx and move to QT or
> something similar that's cross-compilable.
Yes, that would be ideal! But ...
First, please understand this in NOT a “pissing contest” as Stevie put it. I know sometimes (or a lot of times) putting thoughts and expressions in writing can come across has harsh, when the intent was really not to be.
I would love to see VCC ported to work on all the major platforms, like MAME & XRoar already do.
How to do that, is a different story. To take the existing code and somehow shoe-horn that into Qt code using OpenGL – might be possible, but man … extremely difficult. I applaud the effort, but I believe the possibility of success is extremely low on that approach. They are two completely different “beasts” to tame.
To do that, (again, this is just my opinion, duck and cover) it is a complete re-write.
I am talking starting over from scratch.
Now, what a person can do is use the existing VCC code as a road-map. Base a lot of the logic of the VCC engine for the CPU and peripherals. You could say start w/ the VCC code in one folder and the new from-scratch Qt code in another folder. And as you re-implement sections of the code/logic then you delete that code from the VCC folder.
BUT it is NOT just a cut-and-paste proposition. Each section will have to be re-done, re-engineered. The VCC code was NOT done in a manner of separation of concerns like your model/view MVC concept. All the logic there is intertwined w/ the GUI stuff and the DirectDraw stuff.
So the question is, how big of an effort for a ground up re-write using Qt/OpenGL?
It is BIG (at least in my opinion it’s huge). UNLESS, you’ve done this kind of thing before. And are young and fast. But if you’re like me, in addition to the re-engineering / re-construction of the VCC code you have the learning curve of Qt/OpenGL to boot. For me to do this – I’d be looking at 500 hours -- bare minimum on a project like that. Possibly closer to 1000 hours. AND then after ALL that – you will still be in C/C++ land. A land that is still full of pitfalls. Even after just a few days working w/ the VCC I’m thinking, oh, yeah, that’s why I don’t do anything in C/C++ now, or have for many years. C/C++ is not the go-to language for new development these days.
My thinking is this: if you want to modernize – dump C/C++ altogether. Do the re-write in C# or Java (I would be cool w/ either, but prefer C#) These days, C#/Java are perfectly adequate for speed -- even comparable to C/C++ to a certain degree. But forget keeping compatibility older versions of Windows! (which in this scenario, would be OK)
C#/Gtk#/OpenGL --> OpenTK / SharpGL or figure out which OpenGL C# binding is most popular and maintained – also I believe there are some C# multiplatform game-kits that call on the best available graphics engine behind the scene (SDL on Linux/DirectX on Windows etc. could be looked.
Same thing would go for Java. Might have even more options w/ Java including might be possible to use JavaFX to do the whole thing.
That would be my 2c for a complete a re-write (which to summarize, in my belief, is the only way that a multi-platform VCC’ish – i.e. based of the VCC code -- gets done)
James
More information about the Coco
mailing list