First impressions:
-Autosave works great! (How about auto-loading *.srm files that have a filename equal to the ROM's that's been selected for loading?)
-2Mbit hirom games don't work yet.(example: Hungry Dinosaurs.
Not valid by official Nintendo specs, but how about having a minimum bootable filesize of 32kbyte(lorom) and 64kbyte(hirom)? Would be great for homebrew stuff.)
-no issues with SDRAM/DSP-1 errors so far on any unit.
Regarding that $21xx-region issue:
-after holding reset to enter SRAM saving mode, the PowerPak responds to read accesses from $21c0-$21ff. Here's what it looks like, although that picture itself doesn't prove anything in particular, of course:
http://dforce3000.de/index.php?p=fdsingle&uid=361
-DMA=0/1 doesn't affect this.
-Data read appears not to be random, patterns are visible.
Here's a guess:
The PowerPak DMA port is accessed at $21ff by software, but you don't actually decode the full b-bus adress in hardware, just the upper two adress lines, resulting in the DMA port being accessible from $21c0-$21ff.
The port just stays on after ROM loading.
I assume the adjustment neccessary would be rather small, unless you don't have the full adress bus b connected to your FPGA, of course.
My general experience with the b-bus is that quite a few games accidentaly access the whole bus range, most prominently during memory clearing operations. I had to put a hardware lock on the Ultra16 registers to prevent some games from messing up (Lion King comes to mind in particular).
Disabling most PowerPak registers after ROM load might increase compatability. Just an idea, though.