Amazing. Thank you for all your hard work. Since CD audio doesn't gain from this, Reicast probably would not benefit, but I bet Mupen would find this useful if anyone was brave enpugh to try. Hopefully this continues to bear fruit. Thank you again!
Actually I've been first looking at moving mupen's RSP handling to the DSP, but unfortunately that code is tied up too much in the emulator and it would be nightmare to synchronize. In other words this concept would probably work on a specially designed emulator, but not with mupen64plus.
Thanks Notaz for continuously improving PCSXReARMed!
Just a question, was there a reason why you chose to focus on the SPU for the DSP usage ? Could it have been used for anything else, or was it simply the most straightforward implementation ?
It most likely could, but it's difficult. In the real PSX SPU is rather autonomous and has it's own RAM that main CPU can't access (only SPU can), which kind of allows moving it's emulation to separate thread or processor, but it's still problematic as the SPU can interrupt main CPU any time, so I had to use tricks to handle it, like predicting interrupts in advance. The DSP could also handle graphics, if optimized enough, but I really doubt it could beat Exophase's NEON GPU. It would also be hell lot of work..
Wow. Impressive achivement!
Source code is your git?
Yes, see "spu: start offload code to TI C64x DSP" and "spu: finish offload code to TI C64x DSP" commits, although they are not clean and mixed with emulation rework code..
If you want to mess with DSP, I suggest you start with minimal tests like making the DSP multiply numbers, maybe based on sample code in c64_tools zip.
nice..how does the speedup compare with the (theoretical) max speed up (no sound)??
Not sure what you mean here.
Can we that use in any Way for other Emulators like Reicast and PPSSPP too?
Will try it soon with my favour PSX Rpgs,thx for your hard Work
Probably, but would it be worth spending a month of work to get like 20% speedup?
Those things are probably dominated by SGX driver anyway..