Well, this started long ago, but so far almost every game that tried a direct access to the CD drive had its own crack, so it was not necessary to worry about it ...
Now I got another old child game, actually a series of them, but I started with "Justine et la pierre de feu". I wanted to try running it with fake-CD to make a portable installation.
The problem is again that the game tries to open "\\.\X:" where X is the drive letter and this means that it is trying to access the CD device in raw mode, bypassing the file system layer.
The idea in short is to detect the path syntax and redirect the CreateFile call to a $RAWDISK file that holds at least part of the raw CD data. The file should be created once and for all by using a dedicated tool that reads the data from a properly mounted CD image.
I hope the idea could be easily implemented and could work. This Justine game seems to read and test only the first 32768 bytes.
Last edit: gho 2 days ago
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My mistake, the game reads 2048 bytes at seek position 32768, but not happy with that it keeps reading other chunks of 2048 bytes in other places. What's troublesome is that you can't read the whole CD device sequentially because it is divided in segments of 32768 bytes and to read it all you should keep seeking and reading up to the end.
The thing is maybe not impossible, but it looks longer and more troublesome that mounting the CD image.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Maybe the problem could be bypassed by simply pretending that all read operations didn't fail (I doubt the game could check for exact correspondence of every chunk ...) but it is not satisfied, it wants more!
It seems I picked a hard task. The game seems protected by some custom version of LaserLock 5.00 and it can't be easily cheated. Even LL32ICA.exe generic patcher doesn't work with it.
The curious thing (for me) is that if I try to read data from the CD using the same calls that the game does, the read bytes seem different ...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I don't think you had the best luck choosing a game, you should have picked something simpler without such sophisticated protection. I might be wrong, but it seems to me that LL32ICA.exe acts more like a launcher than a patcher with version LaserLock 5.
By the way, the English version of "Milo and the Magical Stones" probably doesn't have this protection.
Last edit: huh 18 hours ago
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, the English version 0f the game "Milo and the magical stone" (curiously the game name is completely different in French) is not protected by LaserLock.
Both "Milo and the magical stone" with fake-CD and "Justine et la pierre de feu" with a mounted CD have the same problem: they crash after a few seconds, But this is not related with the copy protection.
Update: it is necessary to drop a copy of quicktime.qts in the game folder ...
Last edit: gho 15 hours ago
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, this started long ago, but so far almost every game that tried a direct access to the CD drive had its own crack, so it was not necessary to worry about it ...
Now I got another old child game, actually a series of them, but I started with "Justine et la pierre de feu". I wanted to try running it with fake-CD to make a portable installation.
The problem is again that the game tries to open "
\\.\X:" where X is the drive letter and this means that it is trying to access the CD device in raw mode, bypassing the file system layer.The idea in short is to detect the path syntax and redirect the CreateFile call to a $RAWDISK file that holds at least part of the raw CD data. The file should be created once and for all by using a dedicated tool that reads the data from a properly mounted CD image.
I hope the idea could be easily implemented and could work. This Justine game seems to read and test only the first 32768 bytes.
Last edit: gho 2 days ago
My mistake, the game reads 2048 bytes at seek position 32768, but not happy with that it keeps reading other chunks of 2048 bytes in other places. What's troublesome is that you can't read the whole CD device sequentially because it is divided in segments of 32768 bytes and to read it all you should keep seeking and reading up to the end.
The thing is maybe not impossible, but it looks longer and more troublesome that mounting the CD image.
Maybe the problem could be bypassed by simply pretending that all read operations didn't fail (I doubt the game could check for exact correspondence of every chunk ...) but it is not satisfied, it wants more!
It seems I picked a hard task. The game seems protected by some custom version of LaserLock 5.00 and it can't be easily cheated. Even LL32ICA.exe generic patcher doesn't work with it.
The curious thing (for me) is that if I try to read data from the CD using the same calls that the game does, the read bytes seem different ...
I don't think you had the best luck choosing a game, you should have picked something simpler without such sophisticated protection. I might be wrong, but it seems to me that LL32ICA.exe acts more like a launcher than a patcher with version LaserLock 5.
By the way, the English version of "Milo and the Magical Stones" probably doesn't have this protection.
Last edit: huh 18 hours ago
Yes, the English version 0f the game "Milo and the magical stone" (curiously the game name is completely different in French) is not protected by LaserLock.
Both "Milo and the magical stone" with fake-CD and "Justine et la pierre de feu" with a mounted CD have the same problem: they crash after a few seconds, But this is not related with the copy protection.
Update: it is necessary to drop a copy of quicktime.qts in the game folder ...
Last edit: gho 15 hours ago