$10 in $4310 means that the HDMA target address will be decremented; surely it should be incremented? (Bit 4 = 0)
So [the CGRAM index] auto-increments, huh...
Yep.
in that case, do I simply change it back to what Anomie calls "2 registers write once" and set 2121 as the base address (so it writes 0 to 2121 and then the color value to 2122), or do I change it to "2 registers write twice each"? Anomie's doc says 2122 works like OAM access, i.e. it doesn't actually update until you write an entire word...or am I misunderstanding it?
Transfer modes work like this:
0 = register0
1 = register0 register1
2 = register0 register0
3 = register0 register0 register1 register1
4 = register0 register1 register2 register3
5 = register0 register1 register0 register1
6 = register0 register0
7 = register0 register0 register1 register1
You could use one DMA channel to reset the index and another one to set the color values.
Or you use transfer mode 3 and write the same value to the index register.