I post a patch to https://sourceforge.net/p/fuse-emulator/bugs/424/#8432
. You try to compile fuse with this patch... Fuse will ask you about 1 sided or 2 sided the opened disk.
I thought that setting FUSE to read 40 track images was going to do the trick
These settings related to the emulated disk drives, not to disk images or images "geometry". e.g. if you set "single sided 40 track", then cannot read the second side.. because only one head "exists" in the emulated drive. (Looks like in "real world")
Some technical details:
The MGT disk image format is a very modest format. It only contains the raw data of all the sectors of the disk. There is no any metadata, e.g. information about number of sides, tracks, sector lengths, number of sectors in a track, etc... there is no any "magic" (e.g. some ID byte at the beginning) to be sure this is really an MGT
We guess the disk geometry only from:
- the length of the file
- and we know that: MGT filesystem (Disciple/+D/SAM Coupé -- G-DOS, G+DOS, SAMDOS, UniDOS, BetaDOS, Master DOS, etc) uses 512 byte length sectors
- and uses 10 sectors per track
2 sided 80 track disk: 2 x 80 x 10 x 512 = 819200
1 sided 40 track disk: 1 x 40 x 10 x 512 = 204800
But (not a big surprise) a two sided 40 track and a one sided 80 track disk images have the same file length: 409600
So if we have a 409600 byte length MGT file, we cannot know this is a 2 sided 40 track or a one sided 80 track image.
Other emulators can read the image, so, is not corruption or bad formatting, so my assumption is that or FUSE is not following the disk configuration (40 tracks), or it just hate non-conventional disk images. Either way, I think there is room for improvement.
ZXSpin assumes: 2 sided 40 track, Fuse (without the patch) assumes: 1 sided 80 track
I created a one sided 80 track test disk.
As you see it fails the same way as the 2 sided 40 track image with Fuse.