diff options
-rw-r--r-- | src/lib/formats/dsk_dsk.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp index 7994f60f3ce..c208a5f8e81 100644 --- a/src/lib/formats/dsk_dsk.cpp +++ b/src/lib/formats/dsk_dsk.cpp @@ -381,7 +381,7 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) } } if (heads > img_heads) - return false; + osd_printf_warning("dsk: Floppy disk has excess of heads for this drive that will be discarded (floppy heads=%d, drive heads=%d).\n", heads, img_heads); uint64_t track_offsets[84*2]; int cnt =0; @@ -414,7 +414,7 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) int counter = 0; for(int track=0; track < tracks; track++) { - for(int side=0; side < heads; side++) { + for(int side=0; side < std::min(heads, img_heads); side++) { if(track_offsets[(track<<1)+side] >= image_size) continue; track_header tr; |