Skip to content
Convert any Amstrad CPC dump file to other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
googletest @ 08d5b1f
zlib @ cacf7f1


Build Status Build status

Convert any Amstrad CPC dump file format to other format


Usage : SugarConvDsk source [destination] [-s=side] [-second=path][-o=outputformat] [-r] [-f=filter] or SugarConvDsk -cat=user [-sort] [-l] [-c] source

If -cat option is not used, SugarConvDsk will perform a format conversion.

-s=side : Select side of the disk to convert.
   Side can be 1 or 2
   If omitted, both side are written (if relevant for the format)

-second=path : the 2nd side is replaced by the dump source specified in 'path'

-o=outputformat : Select output format. Can take the following values:
    EDSK : Extended Dsk format
    HFE : HFE format
    IPF : IPF format
    SCP : Supercard Pro format
If this parameter is not used, default output format is EDSK

source : The source file can be in the following format :
    CTRAW : CT-RAW format
    DSK : Dsk format
    EDSK : Extended Dsk format
    HFE : HFE format
    IPF : IPF format
    SCP : Supercard Pro format
    KRYOFLUX : Kryoflux RAW file format
    If the source file is a directory : In this case, every files in the given directory are converted to the 'output' directory

destination : output file. If source file is a directory, destination is used as an output directory

-r : If the source file is a directory, convert recursively the given directory.
-f=filter : If the source file is a directory, set a filter for the files to convert.

Example : SugarConvDsk d:\dump d:\result -o=IPF -r -f=[CPC]*.dsk 
This will convert to IPF every file of the form "[CPC]*.dsk", from directory d:\result, and subdirectories.
Result files will be saved in the d:\result directory.

If -cat option is used, SugarConvDsk will display the content of the diskn, and will not do a convertion.
In this case, destination and conversion flags are ignored.

-cat=user : This option will print the disk content, based on the USER specified. If ALLUSERS is used, all users will be displayed.
	If used, this option will prevent a convertion.
-sort : This flag will wort the files in alphabetical order.
-l : Add flags H for hidden files, and R for read-only files. List isdisplayed with one file per line.
-c : Display file on the same line, separated with semicolumn

This tool mainly convert any format into an internal format, then write it back to the specified one. Internal format is bases on MFM, with some specific attributes for every bit, which can be weak or optional. The internal format is also not revolution-dependant : If a dump use more than one revolution, to keep track of weak sector for example, a specific algorithm will rebuild a single track from these revolutions, adding the attributes needed to describe everything. Also, an error correction is done, to avoid being fooled by reading error.


This tool can be compiled on various system. Known working targets are :

  • Windows : Both x64 and x86
  • Ubuntu

The tool use CMake as makefile generator, and zLib as an external library. Also, a modern compiler is required as it use some C++17 features (through experimental/filesystem for gcc7.2 and Visual 2017 15.6).

The code is a result of various and extended experimentation, so it may looks like a bit messy (as I tried to make it works before making it right)

You can’t perform that action at this time.