Login:
Menu:
Post: Author:
FamiTracker > General > FamiTracker Talk > NSF Decompiler v0.11 Owner: Slimeball New post
Page 3 of 4 Sort: Goto Page: << Previous [1] [2] [3] [4] Next >>
Posted: 2014-04-02 20:31 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55875
Okay, well... Where is it?

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2014-04-02 20:31 Reply | Quote
Im_a_Track_Man

Avatar

Member for: 5546 days
Location: Plantation, Florida
Status: Offline

#55876
Slimeball, pls

Posted: 2014-04-02 20:33  (Last Edited: 2014-04-02 20:34) Reply | Quote
Xemogasa



Member for: 5227 days
Location: Marseille, France
Status: Offline

#55877
jrlepage wrote:
Okay, well... Where is it?

https://www.facebook.com/nicetas.irl/posts/451925181619817?comment_id=2272418
not sure everyone can see this though.

Posted: 2014-04-02 20:35 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55878
We're not friends, so no.

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2014-04-02 20:38 Reply | Quote
Xemogasa



Member for: 5227 days
Location: Marseille, France
Status: Offline

#55879
i guess that's right then :
http://puu.sh/7TvCO.png

Posted: 2014-04-02 20:40 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55880
...

I meant where is his compiler? All we have is Slimeball's for now.

Unless Slimeball's compiler is just HertzDevil's compiler with a few changes. #conspiracy

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2014-04-02 20:41 Reply | Quote
Xemogasa



Member for: 5227 days
Location: Marseille, France
Status: Offline

#55881
jrlepage wrote:
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.

Posted: 2014-04-02 20:43 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55882
Well, I guess we'll hear from him again in a year then. Or two.

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2014-04-02 21:57 Reply | Quote
Xemogasa



Member for: 5227 days
Location: Marseille, France
Status: Offline

#55883
yeah. also, he wanted me to post that (tl;dr) :
jrlepage wrote:
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).


Posted: 2014-04-02 22:27  (Last Edited: 2014-04-02 22:28) Reply | Quote
za909

Avatar

Member for: 5371 days
Location: Hungary
Status: Offline

#55884
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.

Posted: 2014-04-02 23:03 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55885
HertzDevil wrote:
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.

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Posted: 2014-04-03 00:42 Reply | Quote
jsr
Administrator

Avatar

Member for: 7333 days
Location: Sweden
Status: Offline

#55886
jrlepage wrote:
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.

_______________________
Programmer and developer
Posted: 2014-04-03 03:04 Reply | Quote
poodlecock

Avatar

Member for: 4807 days
Location: !wow
Status: Offline

#55889
All right, I think I have a partial solution.

  1. Export to NSF regularly.

  2. Import with rainwarrior's NSFImport

  3. Fix all loop problems.

  4. Re-export to NSF.



_______________________
"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
Posted: 2014-04-03 04:18 Reply | Quote
y479021776

Avatar

Member for: 4423 days
Status: Offline

#55891
poodlecock wrote:
y479021776 wrote:
Well,I know it is fake~
Haha

I'd make something fake for the laughs, but no, this is not fake.

Well...

_______________________
This is it!
Posted: 2014-04-03 07:42 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 6392 days
Location: Canada
Status: Offline

#55894
Well what?

_______________________
Follow me on Twitter.
I record (some) NSFs on hardware. Feel free to request a hardware render.
Page 3 of 4 Sort: Goto Page: << Previous [1] [2] [3] [4] Next >>