The only on-hardware NSF players that exist, to my knowledge, require you to plug in a cart with expansion audio to use its sound hardware (TNS-HFE4 and the likes). Since you can only plug in one cart at a time (obviously), I don't think it's technically possible at this point. If you did desolder one of each expansion chip from its original cart, made your own PCB for use in a Famicom and ran NSFs with it, then it would be theoretically possible. But I don't think it's happened before.
I think the TNS-HFE4 board had 4 cartridge slots (don't know which, but I think N163 and VRC7 were supported; hard to find any concrete information on this thing). It's theoretically possible to make a board with 6 slots and to plug in an appropriate cart/FDS to each of them and use their sound hardware.
The other option is to use an emulated-in-hardware solution like the PowerPak's programmable FPGA. It currently has an NSF player implementation that emulates a few different chips very well, but is missing 5B, MMC5, and VRC7. Someday it might do all of them. The VRC7 will be the most difficult to emulate accurately.
Anyhow, yes, multi-expansion really is straining at the limits of the NSF format, and does appropriately sound like it. I think PCM is as well, but due to slightly more artificial constraints (the NSF container is kind of a minimal subset of hardware things to support for music; since music + PCM was extremely rare in real games it was overlooked). NSF2 actually addresses this problem by including the last few hardware features you might want to use (IRQ + an infinite init).
This does go to show my ignorance for these kinds of details. I assumed that multi-expansion nsf support was some kind of glitch or fault in the emulation and people decided to just roll with it. The rest of my thoughts stemmed from that.
Not at all. You see; even though the NSF specs allow for multiple expansion chip support, the NES' actual hardware specs prevent this from happening normally (since expansion chips of different kinds can have some bus connections to the 2A03 in common, which will greatly interfere with normal operation).
gyms wrote:
Has there ever been a multi-chip nsf, of any combination, played on actual hardware?
Actually, yes; I don't remember the name of the device, but there was a homebrew cart made in Japan that could support all expansions at the same time. The thing to note is that the cart had its own microcontroller to prevent the above hardware issue from happening; the microcontroller was there to permit all expansions with common bus connections to play properly.
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
It's not that he edited FamiTracker; he edited a FTM file in a way that FamiTracker, by default, would not let him. In opening this altered file, it managed to track multiple expansions, much like custom clock speeds were available by hex-editing FTM's before the feature was implemented.
Okay, I'm totally new to famitracker, and don't know what half of this stuff means... what I want to know right now is how do you import these expansion packs into FT? Cos I really haven't even worked that out...! Thanks xxx
The expansions are already accessible via the Module Properties (Ctrl+P) menu in the program, but you can only enable one at a time. The NSF format allows for more than that (you could use all of them at once if you wanted to), but the program hasn't officially implemented this yet. However, if you create a new FTM, save it and open it in a hex editor, there's a certain byte you can change that tells the program which expansions are activated. Depending on the value you put there, different channels will be unlocked. This pack is merely an archive with a bunch of hex-edited FTM files with different expansion combinations. However, you cannot export NSFs with those yet, since multi-expansion is not officially supported in the tracker, and the NSF exporter hasn't been written to support it.