[Coco] VCC Update

Salvador Garcia salvadorgarciav at yahoo.com
Thu Apr 13 16:26:46 EDT 2017


MAME is cross platform, so is XRoar. What language/graphics technology do they use?
I tend to favor C# too, but many, not just within the CoCo/VCC community, do not like the Microsoftish tie to it, especially if they are aiming to build a multi platform app.
Java is better favored for multi-platform apps.
At some point, the technology that VCC NxtGen will use will be defined, but speaking from experience, I would not halt development on the current version. It is far too easy to hold off an enhancement in favor of waiting to implement a different platform, but the latter is slow to come and those that could have benefited from the enhancement never do because Other Activities come into play and the next generation project suffers from delay after delay. It is better to have the enhancements in place in whatever version is here today and when it comes time to move it to the Nxt Gen, at least the new enhancements will be there. Plus, having a clear view of what is ahead, the developer can take this into consideration when building the enhancement, if at all possible.
I tend to shy away from suggesting too much regarding this particular project because I agree with Bill in that we are all eager to cooperate with suggestions and Brilliant Ideas, but not with work. This is understandable when we also feel that it is a matter of investing hundreds of hours when we are lucky to have a few minutes. The best that I can suggest is to establish a group that wants to cooperate and establish a VCC 101 course where we can systematically take apart VCC's sources to begin to gain an understanding of what went into it and determine what sort of effort needs to go into it to reach the ultimate goal (multi platform). Salvador


      From: James Ross <jrosslist at outlook.com>
 To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com> 
 Sent: Thursday, April 13, 2017 2:42 PM
 Subject: Re: [Coco] VCC Update
   
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


-- 
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco


   


More information about the Coco mailing list