Stiletto wrote:... I expect I'm gonna get a massive eye-roll from Scali, but just being pedantic...
No, it's good that you bring up the subject of licensing actually.
I did notice that there was a change with "GPLv2" being added (the earlier version had '???' as a license).
Up to now, I had just been hacking away at various pieces of code, trying to see what was happening where, and how to make it work.
Now that most things are in place, and I am preparing to put it up on Github, it's good to have a closer look at the licensing.
I believe we are dealing with 4 separate open source projects here, so far, which I have turned into a 5th project of my own:
1) DOSBox: GPLv2 license
2) VFB-01: GPLv2 license
3) YM2151 code from MAME: In its original form in VFB-01, no specific license, current version GPLv2
4) MUNT: GPLv2 license
I suppose it makes sense to just stick with GPLv2 for everything.
The thing I am personally more worried about at the moment is the way code is intertwined. That is, the VFB-01 project uses some MAME-code, but it is not physically separated from the rest of the code. I think having some subdirectories to mark code coming from different projects may make things easier in the future. You can immediately find all the files that were taken from MAME, and compare them against later MAME versions.
Likewise, my current hackjob of the MUNT driver just put the relevant VFB-01 files directly into the project directory.
I suppose the MUNT driver was never specifically designed to be a re-usable 'shell' for MIDI device emulators, so the code in there is also intertwined between the WinMM-related parts and the MT-32 code. When I pruned the MT-32 and grafted the VFB-01 into there, I basically removed most of the MT-32-specific code. I could put the VFB-01 code in a separate directory again. I could also rework the MUNT driver somewhat more, so that the driver is fully abstracted from the emulation layer, and the MT-32 emulation will follow the same pattern.
But I think I'll leave that for now. I'll just concentrate on cleaning up the driver and FB-01 version first.
I hope the DOSBox people will accept the above IMFC patch into the main SVN. It may not be fully functional yet, but it would be nice if it is already integrated in the main SVN, so we can build on it from there. It will then find its way to all other forks of DOSBox as well.