Note to the admin: I absolutely love the signup process on this board! Great job on that! :D
BTW, it seems you are using the MAME YM2612 core, so by not releasing the code you are violating their license.
MAME license:
Redistributions that are modified from the original source must include the complete source code, including the source code for all components used by a binary built from the modified sources.
AamirM, you are indeed violating their license if you are using their code. I would strongly recommend writing your own YM2612 core, or finding an alternative. Try and avoid any licenses that restrict what you can and can't do with the code you write yourself (eg non-commercial, copyleft, etc clauses.)
Here is a small excerpt from one of byuu's(author of bsnes) article.
Sadly, that's an outdated example. Compiz and Beryl have since merged to form Compiz Fusion. There are plenty of examples out there, though. Focus on the message -- not the specifics, and all that.
The only way (legally) to have a closed source project with gpl code (or gpl like) is to use this code dynamically (.dll, .so).
That's legal? I was under the impression only the LGPL allowed even dynamic linking of code like that. I seem to recall musings about how the header files needed have GPL'ed code in them (constants and prototypes, ugh) or some such.
These are all the headaches that I am trying to avoid.
Looks like you're not having much luck.
I'm a big-time supporter of emulator sources being available for documentation purposes, but even I
try not to single out individual authors in public. Hopefully everyone will leave you alone once you resolve the MAME license violation.
First of all tell me what difference will it make if I had opened up the source?
Well, since you asked ... my argument is that it helps other aspiring emulator authors out. When I wrote my emulator, existing source code was a great source for research where the documents were not clear. Even luckier for me, none of the SNES emulators with human readable code were licensed under the GPL :D
I pretty much release my source for two reasons: one, to allow Linux/BSD/Solaris users to build binaries; and two, to allow those wanting to research the hardware (either as emulator authors or as hobbyist SNES programmers) to observe my understanding of it.
In this case, my license does not matter. I don't mind if people learn how to do something from looking at my code, and then implement it in their emulators: I encourage it. But just forking an actively developed emulator to change ~1% of the code, which makes up ~95% of all emulator forks, is stupid.
Now, I noticed you said you'd provide code for any particular sections anyone asks for. That sounds awesome to me! While it's always nice to not have to ask, if they can't be bothered to -- why should you have to go out of your way to appease them?
I really just want to get past the pissing contests of yore, where authors would reverse engineer something, and hide their findings so they could claim superiority over other emulators. That kind of attitude benefits nobody. Sure, you don't technically
have to release your findings, but if you aren't making any money anyway -- why not? Is your ego really that important?
No, Starscream license does not allow commercial usage where as GPL allows it.
Correct. Starscream cannot be combined with GPL code. Once Starscream is built into the emulator, the binary is no longer GPL compatible. Stef could license his own code as GPL, but nobody could legally create binaries with Starscream in it except Stef (at which point the GPL would not apply to that binary in any way.)
A project can only be multi-licensed if all licenses are compatible. That means no license with GPL code can have restrictions that the GPL does not, and vice versa.