- Joined
- Mar 27, 2010
- Messages
- 98
- Trophies
- 0
- Location
- Las Vegas, Nevada
- Website
- pokecheats.net
- XP
- 198
- Country
I'd like to point out that the R4i SaveDongle has ROM dumping potential. It reads the ROM title from a game cart, and displays this as the "Game Info". With some research into the USB protocol that the SaveDongle uses, I believe it may be possible to dump the entire ROM. So far, I have grabbed a program called USBTrace, and I have made a small capture of the USB transmissions to the SaveDongle device. In this capture, I have located the unecrypted ROM title that I mentioned earlier:
I just wanted to point this out. I have absolutely no experience replaying USB traffic (in fact, this was the first time I've recorded any USB traffic), so don't expect any ROM dumping programs from me. Perhaps another member who is more knowledgeable about USB traffic, can look into this.
EDIT:
Here's how I set up the USB traffic dump:
EDIT2:
So far, I've been able to modify elisherer's source code to dump ROM headers, instead of save data. I simply changed lines 31 and 32 of the R4ISaveDonlge.cs file to:
I just wanted to point this out. I have absolutely no experience replaying USB traffic (in fact, this was the first time I've recorded any USB traffic), so don't expect any ROM dumping programs from me. Perhaps another member who is more knowledgeable about USB traffic, can look into this.
EDIT:
Here's how I set up the USB traffic dump:
- I opened device manager, and began disabling USB devices until the save dumping software said that the dongle was disconnected.
- I viewed the properties of the disabled USB device, and grabbed its hardware ID, which was: USB\VID_04D8&PID_003F&REV_0002.
- I Re-enabled the USB device.
- Then I opened USBTrace, and looked for a USB device with the same hardware ID. After that, I clicked "Start Capture".
EDIT2:
So far, I've been able to modify elisherer's source code to dump ROM headers, instead of save data. I simply changed lines 31 and 32 of the R4ISaveDonlge.cs file to:
Code:
private static readonly byte[] Get512Bytes = { 0x22, 0x22, 0x00, 0, 0, 0, 0, 0, 0, 0, 0 };
private const byte Get512Response = 8;