ok so it took me about one hour but I eventually got something (after wiring GND from the PSX to GND from the Arduino, else I only got 0xFFs)
But the 3 dumps I got are all different ..
I used my Arduino Uno, but since it only have 2Kbytes of RAM, I can't store the entire CD bios into the RAM, so I need to transmit the data to the PC while getting the data from the PSX.
I used the Software serial library from Arduino to get the data from PSX and the normal Serial to send data to the PC
Here is the beginning of the dump I got (and I get only 5kbytes of data in total, the rest is just 0xFFs, so, something must be wrong ...)
Code: Select all
#include <SoftwareSerial.h>
unsigned char DumpPrg[] = {
0xCC,0x01,0x95,0x50,0x53,0x58,0x20,0x43,0x44,0x52,0x4F,0x4D,0x20,0x42,0x49,0x4F,
0x53,0x20,0x44,0x55,0x4D,0x50,0x45,0x52,0x20,0x2D,0x2D,0x2B,0x2B,0x2D,0x2D,0x20,
0x4E,0x4F,0x43,0x41,0x53,0x48,0x20,0x33,0x30,0x20,0x41,0x50,0x52,0x20,0x32,0x30,
0x31,0x34,0x20,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,
0x2B,0x2B,0x2B,0x00,0xC7,0x00,0x8A,0x3F,0x8B,0xC6,0x12,0x34,0xCD,0x01,0x16,0x3C,
0x8B,0x26,0xF6,0x3C,0x8A,0x5A,0x26,0xF1,0x81,0xC7,0x00,0xA0,0xCF,0x00,0xA1,0xC3,
0x12,0x34,0x26,0x0D,0x5C,0x26,0xF5,0x4C,0xA1,0x10,0x27,0x04,0xA1,0xFE,0x26,0xE9,
0x81,0xAE,0x0F,0x6F,0x73,0x5A,0x2A,0xFB,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x05,0xFD,0xAD,0x34,0x4F,0x99,0x25,0x03,0x02,0x05,0x00,0xAD,0x29,0x9D,0x46,
0x24,0xF5,0x03,0x05,0x00,0x81,0xB7,0x83,0xCB,0x02,0x3F,0xC7,0x02,0x3F,0x4F,0xC9,
0x02,0x3E,0xC7,0x02,0x3E,0xB6,0x83,0x99,0x9D,0x11,0x05,0x21,0xFE,0xAD,0x08,0x46,
0x24,0xF6,0x98,0x10,0x05,0x26,0xF6,0xAD,0x00,0xAD,0x00,0xAD,0x00,0xAD,0x00,0x81,
0x5F,0xE6,0x40,0xAD,0xD1,0x5C,0x26,0xF9,0xD6,0x01,0x40,0xAD,0xC9,0x5C,0x26,0xF8,
0x81,0x5F,0xF6,0x5A,0x5C,0xAD,0xBF,0x5C,0xA3,0x40,0x26,0xF6,0x81,0x5F,0xF6,0xA5,
0x00,0xAD,0xB3,0x5C,0xA3,0x40,0x26,0xF6,0x81,0x5F,0x10,0x3E,0xF6,0x5A,0x5C,0x11,
0x3E,0xAD,0xA3,0x5C,0xA3,0x40,0x26,0xF2,0x81,0x5F,0x10,0x3E,0xF6,0xA5,0x00,0x11,
0x3E,0xAD,0x93,0x5C,0xA3,0x40,0x26,0xF2,0x81,0xAE,0x00,0xE6,0x43,0xAD,0x87,0x5C,
0xA3,0x40,0x26,0xF7,0x81,0x9C,0xCD,0x01,0x89,0xA6,0x02,0xAE,0x40,0xBD,0x99,0xA6,
0x50,0xAE,0x00,0xBD,0x99,0xA6,0x10,0xAE,0x40,0xBD,0x84,0xA6,0xFE,0xAE,0x02,0xBD,
0x84,0xCD,0x01,0x40,0xCD,0x01,0x51,0xCD,0x01,0x5D,0xCD,0x01,0x69,0xCD,0x01,0x79,
0x20,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()
{
int i;
Serial.begin(9600);
Serial.println("Power Up PSX !");
digitalWrite(3, HIGH);
delay(4000);
Serial.println("Sending Dumping Program");
mySerial.begin(9600);
for (i = 0; i < 0x200; i++)
mySerial.write(DumpPrg[i]);
Serial.println("Reading BIOS Dump");
for (i = 0; i < 0x4540; i++)
{
Serial.print(mySerial.read(),HEX);
}
Serial.println("done");
Serial.println("done");
}
void loop()
{
}
I verified my soldering and it's all good, no short circuit, I just wired the 7.5v to the 8V from the Power connector of the board, and 3.5V to the 3.5v from the Power connector of the board too.
In other words, definitely not easy to do a dump if you are not an experienced coder and electronic hacker