TomHarte / CLK

A latency-hating emulator of: the Acorn Electron and Archimedes, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 and Amiga, MSX 1/2, Oric 1/Atmos, early PC compatibles, Sega Master System, Sinclair ZX80/81 and ZX Spectrum.
MIT License
947 stars 52 forks source link

Some Spectrum DSK disk images are misidentified as Amstrad DSK images, some are not recognized at all. #1392

Closed hippietrail closed 2 months ago

hippietrail commented 3 months ago

I downloaded 7 random Speccy DSK images from Planetemu.net to play with analysing the DSK and EDSK file formats.

While they all work in Retro Virtual Machine, only three work in CLK:

These two are misidentified as Amstrad disks:

These two cause the "The document “*.dsk” could not be opened. error:


I thought they might work if instead of using "Open" I used "Insert" from a window that's already running as a Speccy. But I couldn't find a way to reset so it would boot off the new media.

OK if I do "New" and select "Spectrum +3" and then "Insert" then they all work.

TomHarte commented 3 months ago

Not that it resolves anything, but if it saves you a few clicks in the meantime then you can also just drag and drop disk images over a running window to insert the disk.

That said, the problem is what you'd probably guess — the emulator fails in its analysis of disk contents and then, crucially, declines to pick a horse. Which is stupid because the emulator already has runtime selection as its intended mechanism to work around that, it's just that I've yet to implement the relevant hooks into the Spectrum and CPC.

I'm going to poke around the analyser first to see whether I can make it work before machine launch, otherwise I'll fall back on the dynamic mechanism.

TomHarte commented 3 months ago

Notes to self:

So evidently I need to try to respect the rules linked better than at present.

hippietrail commented 2 months ago

Nice! Verified by building on my Mac.