From fb30fe4cbb2e00edc4c46a4c57c7f595ec2782b2 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 11 Sep 2016 18:38:13 +0300 Subject: [PATCH] Too small extended adf: skip bytes from the beginning (which is usually gap), not at the end. --- disk.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/disk.cpp b/disk.cpp index 10e7efc9..13e681d4 100644 --- a/disk.cpp +++ b/disk.cpp @@ -2338,17 +2338,19 @@ static int drive_write_adf_amigados (drive *drv) /* write raw track to disk file */ static int drive_write_ext2 (uae_u16 *bigmfmbuf, struct zfile *diskfile, trackid *ti, int tracklen) { - int len, i; + int len, i, offset; + offset = 0; len = (tracklen + 7) / 8; if (len > ti->len) { write_log (_T("disk raw write: image file's track %d is too small (%d < %d)!\n"), ti->track, ti->len, len); + offset = (len - ti->len) / 2; len = ti->len; } diskfile_update (diskfile, ti, tracklen, TRACK_RAW); for (i = 0; i < ti->len / 2; i++) { - uae_u16 *mfm = bigmfmbuf + i; - uae_u16 *mfmw = bigmfmbufw + i; + uae_u16 *mfm = bigmfmbuf + i + offset; + uae_u16 *mfmw = bigmfmbufw + i + offset; uae_u8 *data = (uae_u8 *) mfm; *mfmw = 256 * *data + *(data + 1); } -- 2.47.3