Arduino Amiga Floppy Disk Reader/Writer aka DrawBridge

Open Source and Free! - by Robert Smith


Using WinUAE

I spent months figuring out enough of how WinUAE works to come up with a universal interface to add physical floppy disk support. Send me a thank-you!

It's not quite as fast as a native machine, that's just a side effect of emulation vs physical reality especially without causing WinUAE to freeze while disk access happens.

Why would I do this? Well sometimes it's just easier to drop a disk in rather than converting it to ADF, and also, there's those original copy protected disks. I've succeeded in running Lemmings (and Lemmings 2 The Tribes), Captain Planet, Bart vs the Space Mutants, and a few others too.

For help, and discussion, Join the Discord Channel.

THIS WILL NOT WORK WITH EVERY DISK, try to avoid Kickstart 1.3 or older. Some disks (a select few games) may not work.

Download FloppyBridge for Official WinUAE Beta

If you are involved in beta testing the official WinUAE, you can download the required libraries here:

By downloading this you agree to the Licence Agreement

floppybridge0.8.zip V0.8 Beta (525K) (release notes)

Download WinUAE Temporary Preview Build Preview 13 beta 8

NOTE: As this is a preview, it may contain bugs and issues currently being fixed both in this code and in the version of WinUAE this was built from.

Make sure your drive is working properly. It MUST be running at least V1.8 (1.9.x recommended) firmware (and ideally have the diskchange mod).
Download and install WinUAE from https://www.winuae.net/ as usual. After installation, locate the installed files and replace the exe files with the ones from the following zip:
By downloading this you agree to the Licence Agreement

winuae_floppydisk_preview13.zip Preview 13 beta 8 (14.9MB)
If you don't like it you can always re-install the original ones.

Configuration

Once WinUAE is loaded, configure it how you usually would, then navigate to the Expansions section:


Then, from the Expansion Board Settings select Disk controllers:


Then, from the second menu, choose Arduino Reader/Writer (RobSmithDev):

Yes, I made this available to Greaseweazle boards too. The Catweasel option is nothing to do with me and I don't think it works anyway...

VERY important, click the Enabled box:


Then, choose which drive you want to replace, either DF0, DF1, DF2 or DF3. This will cause WinUAE to ignore any settings you currently have defined for those drives:



Fast: Uses every trick in the book to ensure the emulation is smooth, doesn't stutter with graphics, audio etc. It finds complete disk revolutions by timing one revolution and using that to estimate where others should be, and then runs a pattern matching algorithm to stitch it up correctly. It also tries to read-ahead by reading the opposite side of the disk if it can. This is the fastest method and works 99% of the time.

More Compatible: Slower than the above, but still will not cause the emulation to stutter. This uses the disk INDEX messages to work out a disk revolution. It is more accurate than the above as it doesn't rely on timings, but takes longer to read, it also runs a pattern matching algorithm to stitch it up correctly.

Accurate, but Stalling: In rare cases, usually within Kickstart 1.3 or older, some disks may need this. It will freeze WinUAE when part of a disk is requested that hasn't been read yet to ensure WinUAE receives it exactly when it thinks it should. This would be bad practice on part of the software needing this, but it is possible, and some copy protections might need this too.


Now, select the COM port you have your Arduino reader/writer connected on, or leave it on Auto Detect, and you're good to go!