small note: S-DD1 stopped to work in rev 7652 due to the changes in snes_dma (i.e. moving some variables to the state class instead of directly accessing RAM)
Since I was not able to find the exact piece of code which was causing the regression, and I'm busy as hell at work, I simply reverted the function to read from snes_ram (+ a bunch of cosmetic changes). This should not introduce new regressions, but if there are any, please simply choose which snes_dma causes less damage and use that version. I hope to have some more time in the next days to find the proper solution...
EDIT: ok, I'm dumb...
the problems were caused by these lines:
if ((offset >= 0x4300 && offset < 0x4380) ||
(offset >= 0x4800 && offset < 0x4808))
{
sdd1_mmio_write(space, (UINT32)offset, data);
return;
}
i.e. DMA addresses use sdd1_write instead of writing to the state variables... I'm going to fix this later tonight when I'm at home (hopefully)...