I do have ideas about how a mapper can be made for .NSF, it especially simplify if it is only NTSC, and has no expansion audio, etc
Code:
[..01 .... ...0 ....] W
This is the major bank select register.
[..01 .... ...1 .XXX] W
where X is the bank number:
This is the minor bank select register.
[1BBB AAAA AAAA AAAA] R
where B is the bank number, and A is address within bank:
This is the bankswitched PRG ROM.
[1111 1111 1111 1XXX] R
This is the vector ROM, which is fixed.
It overrides the bankswitched PRG ROM.
[010. 1XXX XXXX XXXX] R
where X is an address:
This is a fixed PRG ROM.
[011X XXXX XXXX XXXX] RW
This is PRG RAM.
Depending on what the $Fxxx bank is used for in the .NSF files you are using, the vector ROM might be unnecessary.
I believe this would be sufficient to implement a 2A03 only NSF player cartridge (tell me if I missed anything). The code for the player which is always present belongs in the fixed PRG ROM starting at $4800. (For example, the reset, interrupts, and code to clear the RAM) Sixteen bytes of the stack are reserved for the NSF player program, so the PLAY routine and current file number and so on can be stored there (you can also use CIRAM if you need additional RAM).