Originally Posted by byuu
May I ask a rough estimate of the number of synchronizations between the two processors per second required to play Zelda 64 rev B, if you don't mind?

I'm not quite sure. An interleave of 900kHz doesn't work, but an interleave of about 9MHz works. Relatively speaking, it means interleaving the processors at about every 10 instructions.

I don't think that this is actually going to be necessary, I do think there are certain things that can be done to avoid always syncing at that rate. The general way it works is:

1) Main CPU grabs the atomic CPU/RSP semaphore.
2) Main CPU initiates cartridge DMA.
3) RSP sits in a tight loop polling the semaphore and decrementing a counter.
4) Main CPU is interrupted upon cartridge DMA completion and releases the semaphore.
5) The RSP exits the loop and reports the value of the counter.
6) If the counter is within a fairly narrow range (0x4c000 to 0x4ffff) relative to the starting value, the game proceeds normally. If not, it gives up on DMAing graphics lists.