I'm interested in supporting reading\writing directly to the Action Replay save data in Save Game Copier. Any documentation on how the data is stored? And how to detect an Action Replay is present? Thanks in advance.
You can detect AR by the bootcode header located at the start of CS0, i.e. 0x22000000. It is almost equivalent to IP.BIN on CD, and should include "ACTION REPLAY" and "DATEL ELECTRONICS" lines within first 256 bytes. Might differ for a new chinese ones.
As for export format, i have an "AR-like" setting in my tool, it was reversed from an existing file, but i don't remember where i got it from. Hope that helps.
Oh, did you mean getting saves off the raw cartridge image? I thought it was about AR export tool for PC via DB25 connector (i had one AR like this, but it was lost sadly). I don't know if the tool like this ever existed, but how did i got this file anyway?
For raw cartridge, ss-save-parser can import it, but not export, and the feature is experimental. If you need the code, look at ProbeActionReplay() and ImportActionReplay() functions in import.cpp
Another option is inserting raw image into emulator and copying everything manually to internal backup, it's less convenient, but more reliable i guess.