Trying to add some capability to DxWnd I tried some game protected with Tages. Of course, what I propose requires that you own the original disc, but it's handy to be able to run it with no need to insert the CD all the times.
As a beginning I found this German "Metro Police" game from 1998. Unfortunately, I think that the tages protection was applied in a custom way and in effect bypassing it was just too easy. There is a hidden folder in the CD named LASERLOK (curious name, isn't it?) that holds a 20MB file LASERLOK.IN. Trying to copy this file to the fake-CD locks the system completely (I had to reboot) so I'm attaching it here, it's an empty file used only to hold defective sectors and compressed becomes tiny.
This file plust autorun.inf is all one needs to create a fake-CD and make the game run.
Then the game has some troubles of its own, but they are not related to the protection:
1) the intro movie uses an unsupported codec (it can be played with some tricks)
2) the rendering requires dgVoodoo2 replacements (at least, I couldn't file a native solution)
3) the text textures are not transparent and are viewed on a white background
Well, this is what for now, I'll try to find a better tages sample.
Update: I deleted the LASERLOK.IN copy because it's even better to create an empty file (0 bytes!) with that name and this way the text textures were fixed!
Are you talking about this Metro Police? https://sourceforge.net/p/dxwnd/discussion/general/thread/aeaf5e01c1/
I had a problem with the water texture on Nvidia that time, maybe I should try again...
LaserLock protection shouldn't be bypassed that easily, maybe it's some faulty implementation.
Asghan has the same technology and it was impossible to run the game with the original CD in Win7, I needed the NoCD patch.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes indeed, that one. I believe that the LaserLock is faulty (or maybe it is going to be triggered later in the game?) because, by the way, you can even delete the LASERLOC.IN file!
I guess I'll have to play some level to see what happens.
The game then has some curious troubles in the rendering: I believe there could also be a DxWnd bug because with the "Set texture pixel format" it throws an error because it tries to create a 16bit surface with a 32bit bitmask. Curiously, dgVoodoo2 likes it and works fine.
Another curious thing is that the huge amount of tricks and flags that was described in the old post seems disappeared. I don't know if I loaded a better game version or DxWnd became smarted to handle the strange cases with default flags.
But the goal was to try to tweak some tages protection, so maybe I'll revert my efforts on Asghan ...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, the idea was to start with protections based on the access of CD sectors at the physical level (opening the \\.\D:\ pathname, for instance) to detect sectors with errors or such things. I don't know if such a protection has a name of its own. For sure, other protections like SafeDisc do initially the same device opening, but then access it through ioctl calls, so the emulation is much more complex (see SafeDiscShim).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Of course, besides LaserLock there are more protections with bad sectors and similar (CD-Protect, LockBlocks, Phenoprotect, Ring PROTECH, etc.) Unfortunately, I don't know which one directly accesses the sectors at the physical level. Do you need have to the original CD to test if your bypass works?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
No, it would be enough a game that works with a CD mounted with some accurate CD emulator (like Daemon Tools) but doesn't work with fake-CD emulation on HD. The difficulty is to find an easy-enough case, I have no hope for the desperate cases.
Currently, DxWnd can handle trivial protections like these:
check on CD labels or CD parameters
check on CD files protections (like error codes for write access operations)
check on audio tracks characteristics
It doesn't handle physical I/O access, ioctl calls and anything above that.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
it throws an error because it tries to create a 16bit surface with a 32bit bitmask. Curiously, dgVoodoo2 likes it and works fine.
On that word, have a time to look at the fullscreen DWMmitigation bug that I mentioned in the newly created thread. Could be related or a subset of that too?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Trying to add some capability to DxWnd I tried some game protected with Tages. Of course, what I propose requires that you own the original disc, but it's handy to be able to run it with no need to insert the CD all the times.
As a beginning I found this German "Metro Police" game from 1998. Unfortunately, I think that the tages protection was applied in a custom way and in effect bypassing it was just too easy. There is a hidden folder in the CD named LASERLOK (curious name, isn't it?) that holds a 20MB file LASERLOK.IN. Trying to copy this file to the fake-CD locks the system completely (I had to reboot) so I'm attaching it here, it's an empty file used only to hold defective sectors and compressed becomes tiny.
This file plust autorun.inf is all one needs to create a fake-CD and make the game run.
Then the game has some troubles of its own, but they are not related to the protection:
1) the intro movie uses an unsupported codec (it can be played with some tricks)
2) the rendering requires dgVoodoo2 replacements (at least, I couldn't file a native solution)
3) the text textures are not transparent and are viewed on a white background
Well, this is what for now, I'll try to find a better tages sample.
Last edit: gho 2024-09-12
Update: I deleted the LASERLOK.IN copy because it's even better to create an empty file (0 bytes!) with that name and this way the text textures were fixed!
Last edit: gho 2024-09-12
Are you talking about this Metro Police?
https://sourceforge.net/p/dxwnd/discussion/general/thread/aeaf5e01c1/
I had a problem with the water texture on Nvidia that time, maybe I should try again...
LaserLock protection shouldn't be bypassed that easily, maybe it's some faulty implementation.
Asghan has the same technology and it was impossible to run the game with the original CD in Win7, I needed the NoCD patch.
Yes indeed, that one. I believe that the LaserLock is faulty (or maybe it is going to be triggered later in the game?) because, by the way, you can even delete the LASERLOC.IN file!
I guess I'll have to play some level to see what happens.
The game then has some curious troubles in the rendering: I believe there could also be a DxWnd bug because with the "Set texture pixel format" it throws an error because it tries to create a 16bit surface with a 32bit bitmask. Curiously, dgVoodoo2 likes it and works fine.
Another curious thing is that the huge amount of tricks and flags that was described in the old post seems disappeared. I don't know if I loaded a better game version or DxWnd became smarted to handle the strange cases with default flags.
But the goal was to try to tweak some tages protection, so maybe I'll revert my efforts on Asghan ...
I thought that thread is about this protection
https://en.m.wikipedia.org/wiki/Tag%C3%A8s
Maybe LaserLock is similar, but certainly not the same.
Well, the idea was to start with protections based on the access of CD sectors at the physical level (opening the
\\.\D:\
pathname, for instance) to detect sectors with errors or such things. I don't know if such a protection has a name of its own. For sure, other protections like SafeDisc do initially the same device opening, but then access it through ioctl calls, so the emulation is much more complex (see SafeDiscShim).Of course, besides LaserLock there are more protections with bad sectors and similar (CD-Protect, LockBlocks, Phenoprotect, Ring PROTECH, etc.) Unfortunately, I don't know which one directly accesses the sectors at the physical level. Do you need have to the original CD to test if your bypass works?
No, it would be enough a game that works with a CD mounted with some accurate CD emulator (like Daemon Tools) but doesn't work with fake-CD emulation on HD. The difficulty is to find an easy-enough case, I have no hope for the desperate cases.
Currently, DxWnd can handle trivial protections like these:
It doesn't handle physical I/O access, ioctl calls and anything above that.
On that word, have a time to look at the fullscreen DWMmitigation bug that I mentioned in the newly created thread. Could be related or a subset of that too?