DIYing a plug that fits the PlayStation's parallel port to boot from a ROM - part 11

from Michal's blog

← Go back to the homepage


Subarticle of DIYing a plug that fits the... | PlayStation development | Published 2022-03-03 06:23:49 UTC

Finally, another update to my project!

I haven't fixed any of the broken the pins yet (I have reassembled the console back together), as I am currently tackling another problem: finding a working ROM and burning data to it. Now, as luck would have it, I found at home an old SST29EE020 (in the PLCC package), which is even listed in this site's store (in the DIP package, but internally the same), so it has to be compatible at least in some ways (I mainly worry about the timings, the voltages can be taken care of with a simple level shifter, since the PlayStation runs at 3.5 V, meanwhile the EEPROM requires 5 V).

However, I do not have a parallel programmer to actually program the chip (such as the popular and a bit expensive TL866). What I do have, though, is an Arduino Mega, which has way more than enough digital pins for hooking up this EEPROM. I made a simple circuit on a piece of perfboard connecting the EEPROM (in a through-hole socket) to the Arduino:

Please excuse the messy solder job, but it works and there are no shorts 😁

Of course, the Arduino would be useless without any firmware, so I found this project which turns an Arduino into a parallel EEPROM programmer. It consists of the required Arduino firmware (which I had to modify as this project was intended for smaller microcontrollers with not enough pins) as well as the host program for communicating with the firmware over serial. It also only supported EEPROMs with the page size of 64 bytes, so I had to modify it to support my SST29EE020, which uses 128 bytes long pages. And the original code didn't support memories with over 32 kB of storage, so I had to patch that as well. Here's the code with my modifications applied to it.

To test it out, I got myself ~200 kB of Lorem Ipsum, and after hours of debugging and modifying the code, I finally got this:

It works! It bloody works! 😁

So I finally wrote sioload (which is only 19 kB) onto the EEPROM, which means that I'm basically done with this part of the project.

I still have to finish the following:

But that's for another day. See you! 😁


In order to post a comment or reply to one, please log in or create a new account:



1 comment total, 1 shown | Page 1


MottZilla (Archived from PSXDEV.net) | Posted on 2022-03-05 22:25:59 UTC

The serial data link is a nice idea. I think that PSIO supports a USB link though that could achieve something similar. I've not tried it out but it is an option for me.

I like the improvised EPROM programmer. I have some older Willem based ones that operate over the parallel port and require jumper settings. I'd really like to get a newer USB one someday.

Looking forward to seeing you put the connector and EPROM together. Then maybe the next step would be to design a PCB to go from the connector pins to a EPROM socket.

1 reply to this comment


1 comment total, 1 shown | Page 1 | Go back to the top