Is there any way of reading Amiga floppy disks to a PC hard drive? Can I use a standard floppy drive with a firmware program that will translate it? Do I need an external drive or a working Amiga computer?
I have just completed an open source solution to this problem available at http://amiga.robsmithdev.co.uk with full source code. The project is based around an Arduino and example code is for Windows (Visual Studio) but could be ported to other O/S easily
Even though with a standard floppy drive there is no way to read it, there are several ways to do this:
- If you have two floppy drives, you can use a program called Adfread (download) to override the way Windows reads the second. This only works with Windows 2000 onwards, (but not Windows ME).
- The SuperCard Pro or Kyroflux controllers, that can be connected over USB.
- The Catweasel floppy controller (PC version), that is available as a PCI or ISA board.
- Cloanto offers a data-conversion service, for a few floppies if needed.
Source: Reading Amiga Floppy Disks on PC at Amiga Forever
The Amiga uses a standard floppy drive, but doesn't use a standard controller.
Data on a magnetic media is essentially stored as flux changes over time where the controller will detect if the magnetic flux has changed over a certain period of time to make it a 0 or a 1.
The problem is that the read head will be less sensitive to a change if it exposed to a magnetic field that has been steady; for this reason, data bits are interleaved with synchronization marks whose only role is to reverse the flux to prevent this from happening. In a typical format (MFM), roughly 50% of the magnetic surface on a track is used for this purpose.
The floppy controller hides all of this from you and presents you a floppy where tracks are nicely partitioned in sectors, etc.
On the Amiga, there is not such thing: the encoding / decoding of the track is done by the CPU and the blitter (to speed up bit operations) and the format itself is completely open. The Amiga can also not write a sector on a track, but needs to write the entire track back. The Amiga was very good machine to copy Atari ST protected floppies back in the day :)
While there is an official format spec for the Amiga floppies, many games use more exotic systems to pack more data and the only way to truly make a copy of Amiga floppies is to read the entire track which a computer that has a regular controller will not let you do.
My FluxEngine software can read and write ADF files onto floppy drives using the appropriate hardware: either my own matching FluxEngine hardware (open source, easy to solder up from a standard cheap dev board, requires Windows to program the board) or keirf's GreaseWeazle (open source based around a Blue Pill STM32 board, harder to solder up or you can buy a preprogrammed custom board). The hardware acts as a USB floppy drive interface into which you plug a normal PC drive. It then works at the magnetic flux level, with the PC client software doing the encoding and decoding, which means it can work with any format which is physically compatible. (Yes, it can write Mac 800kB GCR disks.)
The client is open source and works on Windows, Linux, OSX and probably anything else which supports libusb.
The Amiga 880 Kbyte floppy drive was identical to the 720 Kbyte pc drive (raw storage about 1 Mbyte). Raw data was captured from the drive, stored in memory using DMA and then processed with the help of the Blitter. The hardware equivalent of less than a 100 lines of code. Physically the controller was much smaller than the PC controller, it was software which significantly increased its flexibility.
A 1GHz Android Phone has over 100 times the performance of an Amiga, but I doubt it has more than 10 times the perceived performance.
To interface you do not need an Amiga, a microchip PIC32 would be sufficient and could be programmed in C, and in his experience copy protected discs could be captured and used actively, and work on unaligned (old) drives.
Source: Stephen Craimer, who implemented and tested the original external drives 5.25 and 3.5, wrote this in front of me.
He also thought that a usb dongle equivalent Amiga would be cool but doubts that there is sufficient interest/funding to justify the $100k cost to produce a $50 Amiga which would double as a wrist watch/viewer.
A solution I just heard about which seems not yet to have been mentioned here is DrawBridge; it's an open source Arduino project that uses a regular PC floppy drive to read Amiga disks like many others but the really neat thing is that it's small enough to fit with the drive inside the enclosure of a regular 2021-sized USB floppy drive, as depicted here.
So the whole unit ends up being pretty much the smallest thing that a floppy disk could fit into, with a single USB cable coming out of it.
It has been added as a supported USB floppy reader to WinUAE, alongside the Catweasel and GreaseWeazle, and its GitHub repository has an update as recent as a month and a half ago (the 15th of June; and I'm writing this on the 30th of July) so development appears still to be active.