I meant where is his compiler? All we have is Slimeball's for now.
OH yeah. well he said he was going to and he said it'd be on another april 1st so... i guess that's not for now. just saying that he didn't want to keep it for himself forever.
With that [NSFs are programs] in mind, consider the FTM as the source to this program. Just like a .cpp file is (at least part of) the source to a C++ executable, the FTM represents the code that was entered to output the NSF file you get when you export.
HertzDevil on Skype wrote:
Just as a C++ executable will contain various constants from the .cpp and .h files (mostly ASCII text strings), an NSF will also contain the constants from its source file, in this case all usable data from the FTM, which would be effectively be the contents of the entire FTM, having its patterns and sequences reindexed, song names and module comments removed, etc. It suffices to say the NSF, broken down to its constituent binary data, is no more than the 128-byte NSF header, around 6 KB of sound engine code, and a practically bijective mapping of the FTM sound data. Any data residing in the FTM required for sound playing in 6502 must also be present in the NSF, hence conversely, any NSF corresponds to at least one FTM which contains the same sound data, and this FTM can be reconstructed from suitable inverse operations of FamiTracker's NSF export code.
In other words, provided one is proficient in 6502 and C++, anyone having access to the assembly source of the NSF engine and the FTM handler source code will be able to recognize the identity of sound data between the NSF and the FTM. This is unlike the PSD case as, when the PSD is "flattened" to a JPEG or PNG, too much information is lost from rasterization that no identical, unique (not just equivalent) layers/vector forms can be effectively retrieved from the picture.
Intellectual ownership of an isolated, raw FamiTracker NSF can only manifest in the 32-character copyright field of the NSF header, significantly less than a raw FTM that potentially has kilobytes of module comments. Thus to say either that "the NSF cannot be shown to be identical to some FTM reconstructed/decompiled from it" (which is not the case in the topic), or "the NSF is a means of securing and/or obfuscating the source sound data of the FTM from other persons" is ill-informed and bogus.
Anyone wanting to obfuscate a FTM easily, so as not to allow a satisfactory reconstruction from this bijective relationship, can use Rainwarrior's NSF importer hack and then export another NSF from that (no N163 allowed), viz. FCM10 Cover #39, Cover #87.
goluigi: While the commercial NSF sound engines are not released with another more primitive form of sound data, it remains pretty straightforward to construct new MML dialects or higher frontends specialized for the sound engines, for sound hacking purposes (AddMusicK, Puresabe's MM3-6 MIDI inserter, smps2mid, so on).
Slimeball, jrlepage: My decompiler is written in Game Maker Language as if there already aren't better choices for binary I/O scripting. I don't think there is any sort of conspiracy if the decompiler is fairly smaller than the smallest possible Game Maker executable yet everyone in the posts can use that (plus the source code is severely larger than what I have).
Dr_Mustache: Upload that FTM anyway (I made that entry).
Personally I find this tool very powerful, even to the point of potentially being harmful. Whenever I don't post the .ftm source, my reasons are very simple:
1. I don't want people to steal my instrumentation (at least not as easily, because NSFImport still lets you do that)
2. I don't want to allow people to make edits to my song without my permission, edits I would mostly find useless unless I'm actually crying out for help (in which case I usually just abandon a song anyway) because they wouldn't understand why certain things are the way they are in my songs. I could've been trying to challenge myself by adding a certain restriction, or whatever. This has happened several times to me before.
Actually I've been thinking about suggesting a feature to let us lock our .ftms with some sort of a password, but even that could be found using a hex editor.
Slimeball, jrlepage: My decompiler is written in Game Maker Language as if there already aren't better choices for binary I/O scripting. I don't think there is any sort of conspiracy if the decompiler is fairly smaller than the smallest possible Game Maker executable yet everyone in the posts can use that (plus the source code is severely larger than what I have).
I don't really see how that's a response to anything I said, apart from the joke about Slimeball having simply posted HertzDevil's program on his behalf, which as I just said was a joke.
jsr, I think if he doesn't post it, somebody will end up doing it later. Unfortunately, considering that Famitracker is open-source, it was only a matter of time before a tool like this surfaced. HertzDevil even wrote a similar tool a while ago (though he decided to keep it to himself).
Yeah I am well aware of the fact that anyone easily could have done this since the very first version, and being open source or not doesn't really matter (though it makes things easier of course). I do have my own similar tool that I'm using for debugging, I've also used it to help people who lost their source files.
But considering that the majority of people (>95%?) already have released their source files, I see no legit reason not to respect the few who hasn't (for whatever reason there might be). That's why I never released a tool like this myself, or is especially fond of seeing such a tool being released. But yeah again realize nothing can be done to prevent it.
It is however fairly easy for anyone to create files that isn't possible to automatically decompile, for example build the NSF manually with scrambled file data.
_______________________
"im going to continue making this crazy stuff then after a while my style will be so sick that you will be like damn suuun that shit is so sick i dont even get it. i will be like bro its ok.. you dont have to." -omgdonut