summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/hxchfe_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/hxchfe_dsk.cpp')
-rw-r--r--src/lib/formats/hxchfe_dsk.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/formats/hxchfe_dsk.cpp b/src/lib/formats/hxchfe_dsk.cpp
index 3e972463c93..3fa42793a01 100644
--- a/src/lib/formats/hxchfe_dsk.cpp
+++ b/src/lib/formats/hxchfe_dsk.cpp
@@ -179,8 +179,18 @@ bool hfe_format::load(io_generic *io, uint32_t form_factor, floppy_image *image)
if (drivecyl < m_cylinders)
{
- osd_printf_error("hxchfe: Floppy disk has too many tracks for this drive (floppy tracks=%d, drive tracks=%d).\n", m_cylinders, drivecyl);
- return false;
+ if (m_cylinders - drivecyl > DUMP_THRESHOLD)
+ {
+ osd_printf_error("hxchfe: Floppy disk has too many tracks for this drive (floppy tracks=%d, drive tracks=%d).\n", m_cylinders, drivecyl);
+ return false;
+ }
+ else
+ {
+ // Some dumps has a few excess tracks to be safe,
+ // lets be nice and just skip those tracks
+ osd_printf_warning("hxchfe: Floppy disk has a slight excess of tracks for this drive that will be discarded (floppy tracks=%d, drive tracks=%d).\n", m_cylinders, drivecyl);
+ m_cylinders = drivecyl;
+ }
}
if (m_cylinders <= drivecyl/2)