While working on figuring out how the Datel AGP communication works, I was using Dolphin to step through the Datel AGP disc. I think I've mostly got it figured out now, so I probably won't be working on this code anymore. I thought I'd share it, in case anyone else wanted to finish it/improve it/clean-it up/whatever.
As is, it correctly loads the GBA ROM. I finished before testing out the save function (EEPROM only in this code), so I don't know if it works or not.
I was going to add some information to the wiki for this disc, but I couldn't figure out how to add a new disc. It works to some extent. It requires the BIOS loading (I don't think the disc copies in interrupt handling to 0x80000500, 0x80000c00, etc.). Then, if there are any FIFO errors, just save the state, restart Dolphin and load the state. That will get you all the way to where it loads the cartridge from the AGP EXI/Memory Card device, which loads successfully. I was getting Panic Alerts at this point because the code uses addco. and subfco. opcodes, which apparently aren't supported. I just commented those errors, but full support may or may not be needed for correct operation.
The patch probably should be cleaned-up, but I'm too lazy to work on it now.
As is, it correctly loads the GBA ROM. I finished before testing out the save function (EEPROM only in this code), so I don't know if it works or not.
I was going to add some information to the wiki for this disc, but I couldn't figure out how to add a new disc. It works to some extent. It requires the BIOS loading (I don't think the disc copies in interrupt handling to 0x80000500, 0x80000c00, etc.). Then, if there are any FIFO errors, just save the state, restart Dolphin and load the state. That will get you all the way to where it loads the cartridge from the AGP EXI/Memory Card device, which loads successfully. I was getting Panic Alerts at this point because the code uses addco. and subfco. opcodes, which apparently aren't supported. I just commented those errors, but full support may or may not be needed for correct operation.
The patch probably should be cleaned-up, but I'm too lazy to work on it now.