Bump
I've been curious about that too, while recently looking into the ASND library (Hermes indeed developped his own DSP microcode using Duddie's tools, to perform something similar to what the official one is doing).
According to what I've read, the officiel DSP microcode can do some additional things that might indeed be useful in some projects (emulators for example, to release some of the CPU task, or to use the DSP as a separate processor for emulating simple chips/cpus) :
- ADPCM decoding (maybe using hardware ?)
- Resampling using FIR filtering or linear interpolation
- 64x voices mixing
Now, Hermes directly load his own microcode into DSP IRAM (using DSP_add_task function in libogc) to execute it, I'm wondering if games are doing the same (i.e the microcode is linked during compilation) or if they are using some microcode that is hardcoded in the DSP ROM.
To run this, I imagine you would need to load some DSP boostrap code in IRAM first which itself would load the microcode from ROM and start execution. It might be possible to dump the ROM content this way and in fact, it seems that Hermes microcode has a command that allow you to do this (DSP_send_mail 0x888). (EDIT: a libogc application have apparently been released on
dolphin forums that can be used to dump your DSP ROM program & data)
This is only a starting discussion point, not much to offer here, I only hope it would lead to something interesting, imo DSP is one of the things (with Video Hardware undocumented features) that have still great potential use.
EDIT: it seems a disassembled version is available here:
[
code.google.com]
Edited 2 time(s). Last edit at 01/27/2010 06:03PM by ekeeke.