One thing I notice is that you activate the HDMA channel before proceeding to populate the table. Are you 100% sure you have enough time to get ahead of the game before the next active HBlank?
I presume your SPC700 code has a fast enough turnaround time to not miss bytes, and doesn't get confused when the data counter resets...
Other than that, I'm not sure; it looks to me like you're constructing a valid HDMA table and initializing the channel correctly... I failed pretty hard at debugging your last code sample on this project, so odds are I've missed the real problem. What does it do when you run it?
Khaz wrote:I haven't tried using HDMA yet, but according to the documents I have HDMA uses $43x5 and $43x6 as a "Data address". I don't see a write to $4375 anywhere, could that be the problem?
Those registers are for indirect addressing mode, which he's not using. They don't do anything unless bit 6 of $43x0 is set.