I received this question on another forum: Could Famitracker (or any tracker) import an NSF file?
As I currently understand it, an NSF basically is a music engine + data. The NSF file format tells an emulator where to find the init and playback code. Therefore, someone could write an NSF from scratch with a new music engine and new data, correct?
So, in order to import an NSF, a tracker would have to recognize every sound engine that's out there and interpret the data correctly. I don't have enough experience with NES music to know just how many NSF music engines might be in existence. My guess is that there are probably dozens, and maybe some for which the source code has been lost. So, while I think it may be *possible* to import NSFs provided you can learn enough about what engine is in the NSF, the feature would appear broken to many users until *every* music engine has been supported. And then, any new music engines written with new data would again break the feature until a new importer was written for it. This forces me to ask: Would it be worth it? I don't think so.
I also suggested that you could run an NES emulator under the hood and collect all writes to the sound registers, and then "reverse engineer" volume, pitch, and duty envelopes, but it might be difficult to tell whether these are new envelopes or an envelope + application of an effect. The results would be imperfect.
As I currently understand it, an NSF basically is a music engine + data. The NSF file format tells an emulator where to find the init and playback code. Therefore, someone could write an NSF from scratch with a new music engine and new data, correct?
So, in order to import an NSF, a tracker would have to recognize every sound engine that's out there and interpret the data correctly. I don't have enough experience with NES music to know just how many NSF music engines might be in existence. My guess is that there are probably dozens, and maybe some for which the source code has been lost. So, while I think it may be *possible* to import NSFs provided you can learn enough about what engine is in the NSF, the feature would appear broken to many users until *every* music engine has been supported. And then, any new music engines written with new data would again break the feature until a new importer was written for it. This forces me to ask: Would it be worth it? I don't think so.
I also suggested that you could run an NES emulator under the hood and collect all writes to the sound registers, and then "reverse engineer" volume, pitch, and duty envelopes, but it might be difficult to tell whether these are new envelopes or an envelope + application of an effect. The results would be imperfect.