Also, Hieroglyph,
If your code is indeed based on the GPL licensed (Win/)UAE source code, you can't simply re-license it under LGPL without express permission from its contributor(s). I don't know what you think is particularly impractical about the GPL for Amiga, anyway. All you need to do is make sure that the source of any application based on it is available to anyone with a copy of the software.
That's true, I was just contemplating that at lunch.
It was originally GPL, so no problem, then Jason brought up how problematic dynamic linking is with a GPL library and it made a lot of sense so I chose to err on the side of safety.
I will rewrite some of it and contact Toni to see if there is a problem.
My C structs are created by looking at his PSSO_ offsets and their sizes to infer the type (he exclusively uses offsets to make it easier in the emulator) and also looking at how he used them, so although not clean-room, it's not copy paste.
If you notice, the places where we do share stucts are not quite the same either. His have additional data for the emulator to use that are not needed by a native driver.
A lot of the comments and separators are leftovers from converting the PSSO_ definitions to structs as I went.
Many of the defines for values are copy pastes, but given the intent of my code I'd hope he would cut some slack on those. I could retype them with new names if needed, but that seems pedantic considering Jason's very similar MIT licensed one that I'm sure Toni is aware of.
The notes.txt comments are lifted almost verbatim from his cpp file and I wrote the stubs myself. That could still be GPL if needed, it's just documentation.
Edit: Actually based on this new info I found (below), I'm not sure Jason was correct.
Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.
The criteria for what counts as a "system library" vary between different versions of the GPL. GPLv3 explicitly defines "System Libraries" in section 1, to exclude it from the definition of "Corresponding Source." GPLv2 says the following, near the end of section 3:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If I don't distribute the OS or use third-party libraries that are non-GPL
and
I don't distribute P96
I think GPL might accomplish exactly what I wanted, preventing closed source derivatives of the work.
LGPL leaves the loophole of putting all the working parts into a separate, closed library.