
I've dumped the PSone/PAL CDROM controller BIOS last night, CRC32=2669A1A7h for the 16.5Kbyte ROM-image (IC304 52pin, chip name: "C 3060, SC430943PB, G63C 185, SS0L0130E").
That's been done using Motorola's build-in self-dumping function.
The way how to enter the selftest mode was more or less described in HC05 datasheets (which were a bit unclear since some sections suggested pulling PortC.7 to 2xVCC, and others said PortC.6, which made me feel uneasy, since one should probably avoid strapping the wrong pin to +7V) (anyways, it turned out to be C.7, aka Pin31).
And the datasheet contained some weird drawing that looked like a distorted timing diagram (which turned out to be totally meaningless, the PortC pins can be constant before+during+after /RESET).
The actual data transfer protocol wasn't documented in datasheets, but the decapped PSX/NTSC cdrom controller revealed it's inner workings. The PSone is using identical protocol (with same baudrate constants, ie. older PSX with 4.000MHz oscillator would transfer data at 9600 baud, and PSone transfers data at 10000 baud (apparently derived from around 4.19MHz clock source). The selfdump function is sending data in ASCII format, including spaces and linebreaks and 4-digit address for each byte, plus a request/echo pair for each byte - that looks nice when seeing the data arrive for the first time - but it's also endless slow (in total it takes around 130 bits per byte (ie. around 15 minutes to dump the whole 64Kbytes address space).
For error checking purposes, I've dumped it four times, which was really time consuming. Though there's also a upload & execute custom code function, that way one could transfer bytes in 10bits, and possibly even using something faster than 10000 baud. Maybe it'd be worth writing a custom highspeed dumping function (the programming efforts can't be more time consuming than using the original selfdump function).
The soldering stuff is relative simple & relative difficult: Basically one does need only four wires connected to the chip (two constant voltages: Pin17=3.5V, Pin31=7.5V, and two data lines: Pin50=TX and Pin51=RX with 3.5V levels each). It's a bit challenging because the SMD chip is having really tiny pins, and no solder pads/test points on PSone boards. I ended up using some strings pulled from a flexible wire, attaching that hair-fine strings to the chip, and then connected normal/bigger wires to the strings - and tried to stop breathing and moving... nonetheless I broke some connections 1-2 times. But anyways, after all, it did work fine!
Hope some people will dump some more cdrom bioses! There are probably around 20 different versions (at least five revisions, for each of the three regions, plus devrs versions). I can supply more info on the wiring (basicially that's just the above 4 pins), and on the protocol/software. Of course, the actual implemention depends on what hardware you are using to receive the data (=something that supports serial RX/TX at 3.5V levels).
My approach has been connecting the 3.5V signals to the controller port of another PSone, and then forwarding it to my PC's COM port at +/-9V RS232 levels (don't ask why, it was just the some hardware that I did have at hand).
PS. Should be recommended to lift that Pin31 before wiring 7.5V to it (if you don't: the MIPS CPU refuses to run, and the power LED glows double bright, that sweet effect doesn't affect dumping, but it might damage some other cdrom components, who knows).