DSP file format
From S1MP3 Wiki
Binary extraction
Here it goes some script to extract binary images of dsp code and data from *.dsp file:
- http://www.s1mp3.org/files/pastebin/dsp_unpack.7z
- IDA ad218x disassembly files: http://www.s1mp3.org/files/pastebin/dsp_test.7z
DSP file format organisation
A .dsp file contains a header and 6 sections of data. All offsets are calculated starting from the end of the header. (Positions in hex):
0-3 : 'ADEF' 4-6 : 0 6 : Unknown. Values we've seen: 0x0D (ADPCM), 0x10 (PCM), 0x82 and 0x85 (MP3), 0x73 (WMA) 7-F : 0 10-13: 'DMLS' 14-15: Offset (in file) of IDM-Low memory data 16-17: Length of data 18-1B: 'DMMS' 1C-1D: Offset (in file) of IDM-Med memory data 1E-1F: Length of data 20-23: 'DMHS' 24-25: Offset (in file) of IDM-High memory data 26-27: Length of data 28-2B: 'PMLS' 2C-2D: Offset (in file) of IPM-Low memory data 2E-2F: Length of data 30-33: 'PMMS' 34-35: Offset (in file) of IPM-Med memory data 36-37: Length of data 38-3B: 'PMHS' 3C-3D: Offset (in file) of IPM-High memory data 3E-3F: Length of data 40-FF: Unknown. Seems to be there a few bytes of data inthere: communication locations? Checksums? 100-11E: A plaintext timestamp (for example: "date:2005 02 01 time:15:32:31PM", spaces being null chars)
It is assumed the data is loaded directly to the IPM/IDM-locations, where e.g. byte 1 of IPMH, IPMM and IPML form one 24-bit DSP word.
All file offsets are in words ( 1 word = 2 bytes here)

