The Datel products are definitely pressed CD-ROMs, not CD-Rs.
I guess the CD-ROM and CD-R glass masters can be made using the same machines?
If I'm not wrong, to make a CD-ROM glass master, the machines send the EFM pattern to the LBR and for CD-R, they just turn on the laser beam constantly to create the groove while oscillating it to create the ATIP.
I think the Playstation and Datel CDs are made using a mix of the CD-ROM and CD-R process. The 22kHz oscillator of the ATIP generation part has to be enabled and essentially a modchip lets the 22kHz enter the LBR or not. That way, the laser beam wiggles accordingly to the SCEx pattern while outputing the EFM of the game data.
Datel probably had acquaintance or were friends with some people in a CD factory to convince them to modify their machines.
gwald wrote: May 26th, 2024, 12:21 am
x1.6 longer pits/lands would make an 80min CDR down to 50min, not complaining
I can change the EFM rate when I want while burning so I can increase the disc speed only in the lead-in and decrease by little steps until reaching the program area. By doing that, it's still possible to get almost the full 80min.
gwald wrote: May 26th, 2024, 12:21 am
How did you create the SCEx image?
I guess it's the SCEx bytes modulated (@ 35kHz), converted into polar coordinates and converted into image data? I have no idea where it goes on the CDR...
Basically, the SCEx image is just made of alternating black/white pixels (burned/less burned areas) to mimic the 22kHz where there is a 1 in the SCEx data.
The coordinates conversion is done by Nero not to get deformed pictures but we don't need to do it here because we don't really send pictures but just a pixels array.
I'm not sending the image with Nero though but with my modified version of f1tattoo from
qpxtool. f1tattoo just converts the image in a simple bytes array and sends it in blocks into the burner.
Coincidently, once burned, the alternating pattern is already around 15kHz in the lead-in and we can adjust it by changing the EFM rate to 1.6x when burning which will increase the frequency to around 24kHz (and at the same time this will increase the original 22kHz to 35kHz).
The pattern has to be burned somewhere between 98:00:00 and 99:59:74 (ATIP time codes in the lead-in).
gwald wrote: May 26th, 2024, 12:21 am
I'm assuming some values are hard coded in the firmware and that's why you patched it?
Not only values, but code that I changed or even added by removing unused functions and data (mainly related to an aging mode to test the burner which takes more than 1000 lines of C, so there is quite a lot of space for custom code).
gwald wrote: May 26th, 2024, 12:21 am
I guess once it's working reliably via the CRW-F1, it could just be a program like
cdrecord that burns PS1 self booting CDR's?
That would need some work to trigger my custom firmware commands but also to adapt the stuff related to DiscT@2 and the RAW burning mode but yeah, probably.
gwald wrote: May 26th, 2024, 12:21 am
I assume what the CRW-F1 does in hardware can be replicated via software? Or is a custom hardware mod required on a normal CDR burner?
I don't think any normal burner can replicate DiscT@2 in software. The EFM conversion and the error correction things made in non programmable DSP chips prevent burning too long pits/lands.
Even if we had the full firmware source code, I'm not sure that the microcontroller would have the ability to bypass the CD encoder and independently drive the laser diode.
DiscT@2 doesn't activate the CD encoder to get rid of the EFM generation and instead sends bitmap bytes to the DSP via a special command specific to that feature that manipulates clock signals driving the laser diode directly.
A hardware mod would be definitely easier to inject our own signal but I believe ALPC will be an issue as said in my last post.
Now the tests I did last week show that by using this DiscT@2 method, the result depends on the drive itself.
I was quite excited with the one I tested because I could get boot success 90% of the time using another trick (even if the success also depends on the angle we insert the disc on the motor probably because of the tracking stability and the overall drive state).
But I also tested with another drive on the same SCPH-5502 and that was a complete failure, 0% success... The SCEx code seen in the tracking signal was just too weak for the 22kHz filter to detect.
There is a bit of mystery that I can't fully explain with this issue but I think the sled's parked position is a bit too much on the left on some drives and that causes the lens to stay on the center when reading the lead-in beginning. However, the lens has to go to the left in order to the SCEx pattern to be really well detected because that creates better tracking differences between the E and F photodiodes.
I can't really share all the stuff right now as there are quite a lot of explanations I would need to say to setup everything and do proper testing.
I would prefer taking the time to gather the knowledge in some articles with detailed information, schematics, pictures, videos, firmware patches and scripts but documenting such a big project without forgetting anything important is a challenge.
There will be probably 3 articles: The SCEx protection code simulation, the reversing of the CRW-F1 and how to (not perfectly) replace the fried laser diode of this burner.
Actually, I began the F1 reversing one, and the laser replacement one is basically done even though I have to add/modify some stuff I learned with my other attempt a few months ago.
But before continuing writing them, I have a few other tests to do on the other method involving changing the tracking balance register according to the SCEx data while burning.
Also, as long as it's not reliable enough for every drive, an oscilloscope is required for troubleshooting and adjusting the pattern. Testing stuff blindly would be too hard.
Btw, something I neglected until recently was the cleaning of the spindle motors. Once the WD-40 was applied inside them, that was like night and day. This was clearly the main cause of the struggling issue when the PS1 was reading the game in my Twitter video.
Alexfree's guide and
John-John's video (in French) helped on that.