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.