Are you looking into adding Quickdraw acceleration to your project, Zane?
Not exactly, at least I don't plan to do it personally, just trying to make the has the ability to emulate a video card with that functionality. I want the accelerator to have the capability either emulate any peripheral, with the Macintosh running on its own processor at normal speed (i.e. acceleration off), or run the 68000 code on the emulator (i.e. acceleration on) and still emulate any given peripheral device. I dunno if I'll define APIs supplied by the emulation engine for that, but I want it to be possible on the hardware I produce and I want to allow the easy addition of these features to the software.
I figured that allowing the accelerator to not only have cards, but emulate any card to the Macintosh gives the system greater relevance in terms of preservationism. I didn't like the fact that I was basically cramming a whole Linux PC into this poor old Macintosh to achieve my performance and flexibility goals. So the idea of being able to act like a card to the Macintosh, which really adds no cost or effort since I'm gonna leave it mostly unimplemented, somehow makes up for the ugliness of the Linux PC. Then maybe someone, someday, will implement Radius Rocket emulation hahah.
The way to get the best QuickDraw performance seems to be to re-write the time-critical routines by hand in ARMv8-A assembly, and then use that translation when the block of code is encountered and translated. So that's not really peripheral emulation, that's more of a feature of the emulator.
Doing it that way doesn't have the asynchronous quality that, for example, doing QuickDraw on the 8*24GC does, where the QuickDraw routine immediately returns and then the coprocessor works on the framebuffer while the Macintosh continues, but that's fine. It would be much easier to implement it in the synchronous code-replacement way, and it would retain compatibility with more apps, especially ones written for the 7.8336 MHz 128k-Plus and SE. But yeah, I don't know that I'm gonna write replacements for all the QuickDraw routines, maybe CopyBits since it's the most straightforward demonstrator. On the other hand, maybe the translation engine should, in service of being fast, be implemented so as to write really good ARMv8-A code for serial copying in the way that CopyBits might be implemented?
Hmm... Many questions are unanswered at this point, I've just gotta ensure that I allow as many different approaches as possible while still keeping the hardware cost low.