A CASE STUDY IN PRESERVATION: COMMODORE AMIGA ROGUE --------------------------------------------------- To better demonstrate why the Kryoflux is useful and how to use it, I present to you the case of Rogue for the Commodore Amiga. The commercial release of Rogue for the Amiga was published in 1986 by Epyx. It is easy to find an Amiga disk image for the game in the standard ADF format. At first blush, the disk image appears to work fine. You can use an emulator such as UAE to boot the disk and launch the game. The first sign that anything is amiss occurs after you die: your character's tombstone is labelled "Software Pirate". You will be seeing that tombstone a lot, not just because Rogue is a tough game, but also because you'll be taking six times the normal damage from enemies if the game detects that you are playing a pirated version of the game. Every disk image I have tried has this problem. None of the images out there on the Net appear to be cracked. My first goal after acquiring a Kryoflux was to create a playable disk image of Rogue. This is possible because UAE supports a disk format called IPF, the Interchangeable Preservation Format. IPF files can contain more information on the disk layout and format than standard disk images. With a properly formatted IPF file, it should be possible to use it on a supported emulator as if it were an identical copy of the original disk, copy protection and all. The first step toward creating an IPF file for Rogue was to image the disk with my Kryoflux. I've since developed a more sophisticated workflow using the command line software, but for Rogue I used the GUI to create the stream files. When doing this with the GUI, the important thing is to select <Multiple> from the output files dropdown. Then select both Kryoflux stream files and AmigaDOS sector images in the popup window. Selecting both allows the software to verify the stream files against the expect format, AmigaDOS in this case, and potentially detect read errors and reread if necessary. Once this is done, the stream files will have been placed in a subdirectory. There will be one .raw file per track. The program will also have created a .adf file, but this file will exhibit the same problem as all the adf files on the Net. To give you an idea of how much data the Kryoflux creates for a disk, the Rogue stream files for one 880KB Amiga disk total about 40MB. Now that we have the raw data from the disk, the challenge is to determine the disk's exact layout so that we can create a working IPF file. To do this we can use the tool disk-analyse from https://github.com/keirf/Disk-Utilities. We run disk-analyse on the Rogue stream files: $ LD_LIBRARY_PATH=/usr/local/lib disk-analyse --format=amigados rogue/track rogue.ipf *** T0.1: Unexpected track length (seen 111788, expected 100150) T0.0-79.1: AmigaDOS T80.0-83.1: Unformatted It seems that Rogue is written with a long track on track 0 of side 2(indicated as T0.1 by disk-analyse). Tracks 80 to 83 are unformatted, but this is normal. The rest of the tracks follow the standard AmigaDOS format. A long track is a track that has data written to it at a higher density than normal. Disk-analyse can create an IPF file that contains this information. We just need to tell disk-analyse about the format of the Rogue stream files. Add the following lines to the disk-analyse config file: "Rogue" 1 amigados_long_111000 * amigados Rerun disk-analyse: LD_LIBRARY_PATH=/usr/local/lib disk-analyse --format="Rogue" --config=config rogue/track rogue.ipf T0.0: AmigaDOS T0.1: AmigaDOS Long Track (111000 Bits) T1.0-79.1: AmigaDOS T80.0-83.1: Unformatted And it works! The rogue.ipf file produced by disk-analyse will run in UAE as if it were the original disk! To try it out for yourself, download Rogue from the Kryoflux Amiga section on this site. In addition to the stream files, I've included the working IPF. I hope this exercise demonstrates the need for capturing as many floppy disks with Kryoflux as we can. Without a working Rogue disk, what we just did would be impossible. There would be no way to reverse engineer the original disk's format from an ADF disk image.