|
I agree fully. I've been forming a test in my mind with the most bang-for-the-buck. Run the test code on a real NES and digitize its output for analysis. First, play a square wave of some period for a short time, to provide a precise reference to the NES's clock rate as sampled, so that neither needs to be know. Then play a DMC saw wave as described, using a few delay and period settings. Use DMC sample lengths of 1 ($4013 = 0) and 17 ($4013 = 1), just in case for length 1 it triggers the IRQ immediately. Save a copy of the exact asm used for the test.
Maybe the DMC triggers an IRQ immediately for sample length = 1, meaning the IRQ generation is tied to the fetching of the last byte, rather than the exhaustion of the bit buffer coupled with no more bytes left to fetch. This would be bad, since sample length 17 generates a quite low frequency wave. If the IRQ triggered several bytes sooner than the end, sample length 17 might be reduced to a usable quantity.
Should I write an asm file for a hardware test, that maximizes the value of the test?
|