First post, by FeedingDragon
First, there are other threads that deal with what I'm bringing up, but the ones I found are several years old. And while my Swiss Cheese memory is preventing me from finding the rules (the FAQ is the first place I looked, and I must be blind because I can't find them now,) I do remember that I'm not supposed to "bump" threads that are too old. Also, I thought it might be handy to put several of them in one place.
As stated in other threads, I am in the process of re-imaging my floppy collection. This includes imaging new purchases and those disks I hadn't yet imaged. Now, not being able to write some back, at this time, isn't that much of an issue for me. Most of the copy protected SW in my collection are ones that I would run in DOSBox anyways (as I don't plan to have 5-6 different systems just to play these on original HW.) I'm pretty much finished building a system for running those that don't require specific HW (such as a CGA card with composite monitor,) and aren't speed reliant. The rest are for DOSBox, and so far every disk I have that is copy protected will need to be run in DOSBox. Eventually, I will get my Kryoflux up and running, and these will be re-imaged once again so that they can be written back if necessary.
Also, while I only have a few games so far that are copy protected on the disk, a brief search on the internet shows that there are a fairly large number of games that are thus protected. So the answer I've received in the past (on non-related issues,) to look for game specific fixes is not really all that viable. This would require many such fixes. Just looking through a few searches of "cracks" that involve key disks, I would hazard to say that the number is probably in the 100's. Currently, I would have to "crack" my games just to play them. Since DOSBox doesn't support "cracking" and doesn't support the protection, these game versions "officially" aren't playable in DOSBox. (Thinking of Ultima 2 in this case, of which I actually own 3 versions - The floppies, Ultima I-VI CD, and Ultima Collection CD.)
The problem arises that I cannot find instructions on converting the image files I can create to a format that DOSBox can read that retains the copy protection in most cases. Well, in all cases that I, personally, have come across. I'm not downloading images, and I don't know how the images I've read about that do work in DOSBox, are made, and can't find instructions on how they were made. I now have a file that defines the TD0 format, so I should be able to write my own converter to make IMG files with them. The available converters I have fail with the copy protected disks. The problem is, this will only work with those that don't involve intentional disk errors, variable track/sector sizes or densities (such as Ultima 2's Track 6 that has sector 1 size of 8192 bytes,) and maybe others. Though, making "all" sectors 8192 bytes might make it "workable," (other than the intentional error on the same disk,) at the expense of making the file 16 times larger.
DOSBox does have a method for handling "some" of these. Those that can be converted to raw IMG format without losing the protection. Even those that aren't booters can be handled (I think, I don't have any to test, and I'm not ready to "download" them even for testing purposes.) That would be to create a basic bare boot disk, then boot to that image and the game disks to follow - "BOOT bootdisk.img windwalk.img" for example (WindWalker is a non-bootable key-disk protected game I think.) After all, that's how those games were meant to be played on real hardware anyways.
But that leaves the many others that can't be converted to a RAW format. For these, DOSBox would need to either support another image format or add in the ability to use the raw format with an "info" file. Much like the C64's D64 file can have an "error" block added on for the image. I've only read part of the TD0 format, and something similar to that might be feasible. Though even with "normal" compression, it would have to be expanded out a bit to allow writing to disk. A converter routine (I'm actually in the process of experimenting with writing the routine already,) could take the "headers" the format uses, and put them all into a separate file. Allowing the raw data to just be laid out as it is in an IMG file. The info file would then tell the reading software that sector x is actually 1024 bytes long, etc... In the case of the Ultima 2 floppy, this would lead to some duplication as Track 6, Side 0, Sector 1's 8192 bytes includes all of Sectors 2-8's 1024 bytes of data (along with the first 1024 bytes of Sector 1,) strung together into 1 long string (overlap.) Though that could be corrected if you add in an "offset" value into the header information.
The layout of the info file could look something like this (a work in progress, quickly slapped together on the fly:)
It exists at all, so DOSBox uses it as a "key" to the raw IMG file.
- Track 0 Info
- Number of Sides (2 bit)
Number of Sectors (6 bits)
Sector 0 Side 0 Info
- Offset in IMG file (3 bytes)
Track ID (1 byte)
Side ID (1 byte)
Sector ID (1 byte)
Size of Sector (2 bytes)
Flags (1 byte)
- Offset in IMG file (3 bytes)
- Number of Sides (2 bit)
Everything except the Offset would be straight from the TD0 file. The offset would be calculated as the file was converted. Though I would sort of want to know how a normal raw IMG was laid out so I could match it. Is it track (0-x) Side (0-1) Sector (0-y), or is it track, sector, side? With this information, the info file would max out at 26K, at a guess. With a simple converter, you would have the duplication I mentioned above, and wouldn't really need the 3 Offset bytes. A more intelligent converter "might" be able to detect the overlap. I'd really need to read more of how the TD0 file stores this. Examining and working with multiple images might answer those questions for me as well.
As for what DOSBox would need to do. Look for the info file, then when the game reads the disk, use the info file to generate errors and give the game the data it reads. From what I'm reading, you can't just use a TD0 file, as it will sometimes "not" create the sector data information, because the original disk doesn't have any data there. But, that doesn't stop the game from "adding" data to that area later (save games, flags, hi scores, etc...) Problematical without having DOSBox pause to recreate the entire image (or the image from that point - which could be track 0, sector 0, side 0 AFAIK - onward.)
I don't have a complete list of all the games that have copy protection of this nature. I do know that cracking programs have lists that are rather sizable, and not all games have cracks. I'm willing to wager, that there are quite a large number of games that don't have cracks. There are also a fairly large number that don't have alternate versions. Though, admittedly, many that don't have either probably don't have very many copies out there in service. I do remember, though I don't have access to them right now, that back in the day there were games that I detested because I hate playing on originals, and nothing I could do would allow me to get away from that. That was pre-internet, but I was active on quite a few BBS servers, even to spending a few dollars every so often to call long distance to find what I needed. I also never hesitated to order parameter utilities from magazines (again to get away from using my originals.)