neologix wrote:
I'm playing around a bit with CiPad right now and I'm feeling rather limited. First impression is that it seems to only be useful for generating libraries rather than full-blown apps.
I don't really want to learn a brand new language that doesn't even let me write the interface, so for now I'll stick with writing cores directly in JavaScript on my side. I'm going to try my hand at decoupling the FM core from the JS MDX Web Player to see how easy it is to integrate as the YM2151 core of vgm.js.
Feel free at your leisure, though, to rewrite my existing sn76489.js (or the original SMSPlus-GX/GenPlus-GX sn76489.c from which I ported it) and vgm.js in Ci as a programming exercise to see if Ci as the source language for maintenance is actually useful. I did almost a straight port with the SN76489, so there aren't any outright speed optimizations done yet.
We only want a library, not a full blown app. That's why I want to write two libraries in Ci: The chip cores and the VGM parsing code. The rest will be implemented per-platform. Most of your JS will remain, for example, in the web player. You'll be developing (reusing) your own interface. We only write the reusable code in Ci. Something tells me you've already understood this.
The language itself is not very different from C++ or Java. It's just subtleties, potato potato.
I've spoken to ValleyBell and he says he's alright with rewriting the VGM code. There are currently 32 chips, so if we divide the task by 3, we will each have roughly 11 chips. But I suppose the system will prove itself once we have a couple of working chips. I'm thinking YM2151 and OKIM6258. The hard parts will be converting from C to an object-oriented language and after that, maintaining the code with the updates to the original C file, by its original authors or maintainers (upstream commits, you may call them).
I'll try to get the project started.