I tried for several weeks to homebrew code that could talk to the Maple bus and all of my efforts were dead ends. Basically, as far as I can tell I was talking to Maple identical to how DC would work, and instruction-for-instruction identical to how MvsC2 does it (and the BIOS). I set up cache properly, used uncached pages for the buffers, sent the real address to Maple, and even read back registers to verify that I set things up, but I could never ever get the Maple bus to respond by placing the buffer in the response location. It never worked and I don't know why.
github.com/DragonMinded/netboo…3/assembly/write_eeprom.S This code worked fine in mame, demul and nulldc, but doesn't work on hardware. Debugging shows that the memory at the response buffer just never gets updated, even though its in uncached (0xa0000000) mirror. If I debug in demul/nulldc/mame, I get expected responses from the Maple bus, so I am 99% sure I am setting up registers properly. Do you know if there's some magic init thing I have to do to get things working? Is cache wrong? I don't think the MMU is enabled at the beginning of a cart-based ROM.