From ab20a16990ac6975f63d63d40549cc64a95ce684 Mon Sep 17 00:00:00 2001 From: AmatCoder Date: Sat, 6 Jul 2019 10:17:27 +0200 Subject: [PATCH] dsk_dsk.cpp: Surpass some copy-protected tracks Fix MT 06716 --- src/lib/formats/dsk_dsk.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/lib/formats/dsk_dsk.cpp b/src/lib/formats/dsk_dsk.cpp index e21598eaf36..db9d54920e5 100644 --- a/src/lib/formats/dsk_dsk.cpp +++ b/src/lib/formats/dsk_dsk.cpp @@ -424,10 +424,27 @@ bool dsk_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) if (tr.number_of_sector == 0) continue; + int protection = 0; + int first_sector_code = -1; + for(int j=0;j 0) && (sector.sector_size_code == 2) && (first_sector_code == 6)) + protection = 1; // first: 6144 rest: 512 + + if ((j > 0) && (sector.sector_size_code == j) && (first_sector_code == 0)) + protection = 2; // first: 128 rest: N*128 + } + desc_pc_sector sects[256]; uint8_t sect_data[65536]; int sdatapos = 0; int pos = track_offsets[(track<<1)+side] + 0x100; + for(int j=0;j