Allright I had to scrap some things in order to make it work, but now we're golden (hopefully)
I am polling the SPI registers in order to receive bytes with the arduino. This is because the interrupt driven method was not ideal in this situation. Bytes would get lost because the SID emulator's timer interrupt was blocking the SPI interrupt.
As long as there is enough delay in between writes it's fine. I imagine you could use interrupts on the calculator to send one byte at a time and still have plenty of cycles left for your program.
I also wrote a PC program that allows you to convert any data to an appvar. I used it to convert SID dump files to appvars. I successfully played one back. I need some kind of compression though cause those dump files are huge.
Edit: The sawtooth wave of the emulator sounds terrible, so I am probably going to have to rewrite some of the emulator's code. I hope I will be able to pull that off without breaking something in the process
I am taking out my scope to try to find out what is wrong with it.