Hey, I've finally got some good news!
I'm working on a budget so I can't afford debugging tools and that's one of the reasons it takes so much time. But I've bought some cheap logic analyzer clones and it helped me debug the remaining issues!
Turns out I was handling incorrectly some ARM state register (xPSR in an IRQ) and that this was causing the code to crash if it got interrupted during a multi-cycle instruction. But now that the issue is fixed, it
seems like the cartridge supports max speed games!
There's always more debugging to do, and maybe I can even consider working on the SPI save chip simulator. But once I've cleaned up the code a bit, I should be able to release the source code to (at least) the uC software. The cartridge PCB is probably garbage (I don't have any experience with this), but I might consider releasing it anyway.
Thanks to
@Sono for their help - this actually wouldn't have been possible without your work!