Interfacing with Rhom BR24C02 EEPROM

Hello,

I have an old XBOX that I would like to dump the EEPROM of. I've seen many different custom-made devices that facilitate this comprised of no more than resistors, wires, and a connector. However from my searching I've been unable to find a single trace of anybody trying this with an arduino (and very few of anyone trying it with any other type of device), so I would like to give it a try. Unfortunately, I can't seem to translate the methods used by various programs (such as ponyprog) and different arduino setups for accessing EEPROMs. I would like to not have to solder directly onto the tiny pins of the EEPROM itself as my soldering skills, although many years old, are still quite sad at best. So I am attempting to use the LPC header as most custom readers do. That gives me SDA and SCL to work with (that I know of, maybe it exposes more, I'm not sure), but every example I can find regarding EEPROM interfacing with an arduino uses four pins. So can I do it with just two? And if so, can anyone point me in the right direction of what parameters I need and how exactly to send and receive the data? All I need to do is dump the 256k memory. If I do have to use the EEPROM pins themselves, I'm still not sure what values to set for the SPCR. This is the datasheet for the EEPROM on the xbox (I'm pretty sure it is at least): BR24C02-W pdf, BR24C02-W Description, BR24C02-W Datasheet, BR24C02-W view ::: ALLDATASHEET :::

Can anyone help me with this? I would really appreciate it. I've been staring at EEPROM tutorials and datasheets all day and it's starting to give me a headache.

Thanks
~ Kerberos

Ok so I've made a little progress. I think. I've found and modified some code that, from what I understand, should do the job. However I'm not 100% sure where to connect ground to. I have it connected to the metal case as I've read that that's what you're supposed to do. But when I hook everything up and power up the arduino it doesn't show up in the software and I can't access the serial console to see it's output, which I take it means something is fairly wrong. Any pointers?

This is the code I'm using:

#include <Wire.h>
 
const int SIZE = 128;
const int SDA = A4;
const int SCL = A5;
const int ADDR = 0xA8; // I2C address of EEPROM

void setup() {
  int address = 0;

  Wire.begin();
  Serial.begin(9600);

  Serial.println("Dumping EEPROM:");
  Serial.println("");
  for (int i = 0; i < SIZE; i++) {
    Serial.print(read(address), HEX);
    address++;
    
    if (i % 16 == 0)
      Serial.println();
  }
}

void loop() {
}

byte read(int address) {
  Wire.beginTransmission(ADDR);
  Wire.send((int)(address >> 8));
  Wire.send((int)(address & 0xFF));
  Wire.endTransmission();
  Wire.requestFrom(ADDR, 1);
  if (Wire.available())
    return (byte)(Wire.receive());
}

Edit: Ok now it's working a little better yet. I can access the serial port and it's outputting something. Unfortunately, it's all 0's. This may have to do with timing as using a custom reader apparently is finicky and often requires a few tries to get the timing down. I'll keep trying.