This is a preview of 64drive firmware 3.00, adding 64DD support. The FPGA simulates the ASIC registers, based in large part on Happy’s work in MESS.
There isn’t enough on-board memory to keep the IPL and disk image loaded at the same time, and trying to load the disk info using SD/CF LBAs was fraught with errors. Instead, disk images are placed in cart space and the IPL is read-only, accessed much like save files, for games using the sound and font data.
My contribution is a custom bootstrap replacing IPL 2 and 3 in the boot sequence. Just like a cart bootstrap it initializes the system, but also applies disk initialization found only in the DD bootloader. The disk is loaded directly without any IPL code executing.
There are some kinks. Writes are not flushed back to SD/CF but are written to cart space, so just like with the Dezaemon DD cart mod you can upload them to PC using USB. Expansion disks can’t be run with a cart base, and disk swapping isn’t really supported. You can upload a new image via USB, but the eject and disk change flags are not set by the FPGA yet. That would require active monitoring or possibly a trigger, but should be the easiest problem to solve.