As of now, I'm loading all the level assets in advance, but many of the assets in RAM stay compressed until they're needed, such as backgrounds and fullscreen graphics. I decompress those asynchronously into video memory when I need them. The second video in this blog post shows the decompression happening onscreen in realtime: https://dansalva.to/coding-the-anime-woosh-screen-on-amiga/
Thank you, great blog post! I do a lot of MS-DOS/Pentium and earlier retro programming so I love this stuff. The Amiga is a platform that I missed out on in my youth but I'm keen to have a crack at it some day. Most recently I made this demo with my group https://www.pouet.net/prod.php?which=95524 which won the 2024 Meteoriks award for best midschool production!
It's actually harder to do synchronous floppy I/O on the Amiga. Data transfer is done over DMA, then you perform MFM decoding. The latter can be done by the CPU, or, asynchronously again, by the blitter, in which case you can't use it at the same time for graphic operations.
Depending on what you are going for in terms of gameplay experience, that can be a reasonable trade off. Say an RPG where you page in/out assets as needed but doesn't break the flow is probably going to be a bigger issue on gameplay styles that need more compute to achieve.