Page 3 of 3

Re: NSF 2.0 Featureset

Posted: Sun Mar 22, 2015 10:33 pm
by B00daW
Another thing to consider with the footer or the header is sample-load addresses for the LPC/PARCOR and ADPCM chips; ex: Mitsubishi M50805 and NEC µPD7756C. We could rip/dump the samples in proper format and stick them in ROM space somewhere where the header addresses them or pack them onto footer space where the header expects them to be when it is told which chips are used. Packing them into footer would probably be cleaner since sticking them into ROM space is more or less a hack. Footer space would take more code for the player.

Re: NSF 2.0 Featureset

Posted: Sun Mar 22, 2015 10:47 pm
by rainwarrior
B00daW wrote:Footer space would take more code for the player.
I don't think either way would really result in more code in any significant way.

Re: NSF 2.0 Featureset

Posted: Mon Mar 23, 2015 7:30 am
by B00daW
Well either way would we have to designate areas for LPC/PARCOR and ADPCM sample RAM? Even considering if both expansion chips are used at the same time with a custom NSF?

Re: NSF 2.0 Featureset

Posted: Mon Feb 01, 2016 9:31 am
by tepples
I've tried to clean up the spec: http://wiki.nesdev.com/w/index.php/NSF2

Re: NSF 2.0 Featureset

Posted: Mon Feb 01, 2016 12:58 pm
by B00daW
tepples wrote:I've tried to clean up the spec: http://wiki.nesdev.com/w/index.php/NSF2
The interval timer has three readable and writable ports:

$4018: Lower 8 bits of the 16-bit timer reload value
$4019: Upper 8 bits of the 16-bit timer reload value
$401A: Control register. Clearing bit 0 stops the timer and holds it in reset; setting it to 1 starts it.
Can we change these to $401B-$401D to resolve the 2a0x TEST conflict? Also did the decap show that this area are unused lines?

Edit: Well since we know that $401B-$401D are disconnected I went ahead and edited the wiki to resolve this conflict.

Re: NSF 2.0 Featureset

Posted: Wed Feb 03, 2016 8:00 pm
by B00daW
WikiSpec wrote:$07C 1 BYTE NSF 2.0 feature enables (was $00)
bit 0: if set, enable IRQ features
bit 1: if set, allow a non-returning init address
bit 2: if set, allow play calling to be disabled
bit 3-6: still 0
bit 7: if set, a metadata block follows the NSF data
bit 5 should denote if NEC µPD7756C (Jaleco) ADPCM sample data is loaded/referenced after NSF data; possibly starting with a 16-bit value which gives sample length.

bit 6 should denote if Mitsubishi M50805 (Bandai) LPC sample data is loaded/referenced after NSF data; possibly starting with a 16-bit value which gives sample length.

if bit 7 is enabled then it should verify/calculate its location given one/both expansion(s) enabled.

Any issues?

Re: NSF 2.0 Featureset

Posted: Wed Feb 03, 2016 8:25 pm
by tepples
Would it be wrong to make a metadata chunk type for the ADPCM or LPC sample data? Metadata chunks can be up to 65535 bytes long. But then that'd require the ability to make actual dumps of the data, not just analog-reconverted recordings.

Re: NSF 2.0 Featureset

Posted: Wed Feb 03, 2016 8:35 pm
by rainwarrior
I, too, think metadata chunks are a good place for it.

I said elsewhere but I forgot if I said in this thread, but I think it should just be NSFe metadata chunks; merge the two formats. The metadata goals seem to completely overlap, and I don't see the point of having an arbitrarily different "chunk" format when we've got a perfectly good one already implemented and ready to use.

In NSFe terms, the samples chunk would be a "required" chunk (i.e. allcaps FOURCC) so any player that doesn't recognize the chunk type would know it's not going to be able to play correctly.

Re: NSF 2.0 Featureset

Posted: Wed Feb 03, 2016 9:04 pm
by tepples
Kev's proposal can replace composer and publisher for individual tracks, unlike NSFe's auth which is global and tlbl which holds only titles.

Re: NSF 2.0 Featureset

Posted: Wed Feb 03, 2016 9:08 pm
by rainwarrior
So what? You can just add another chunk type. Super easy. "taut" or something with a list of authors, etc.

You don't need a whole new format for that. NSFe is easy to extend.

Re: NSF 2.0 Featureset

Posted: Thu Feb 04, 2016 8:28 am
by B00daW
Metadata chunks sound fine. There are NEC µPD7756C dumps available in MAME/MESS games but not from the actual Famicom games. In place they could be used to test emulated and hardware support until the actual samples are dumped. I'm not sure any equivalent for the LPC samples are dumped yet.