Zook, could you post your program regarding the CENC decryption (binary/source) so others could look into it?
Sure, I was meaning to add some other stuff to it first but I haven't had the time. I've updated the file on the wiki.
This obviously paves the way for running dsp code on any zen based devices using the CENC encoding.
The player software (CENC/jukebox2.jrm block) uses the same fileformat as the rescue mode software (FRESC block), which is described on the wiki.
The player software also contains a copy of the TI DSP/BIOS RTOS, located at address 0x39800, which means that the player software replaces the rescue mode software in memory.
Here's a few suggested next-steps for the Dell DJ port:
- Write a CENC encoder/compressor. (Just invert decode_pattern in cenc.cpp and split the file into 64K encoded blocks)
- Write a firmware updater patcher. (It would be safest to add a new section to the exectuable, to host the new firmware archive and then redirect references to the existing firmware archive)
- Modify the player software, encode it, repackage the firmware archive, patch the archive into the corresponding updater and run it. (this should be safe, given that the player software is stored on the harddisk and can be recovered from the rescue mode software).
- Write a utility to convert from the TI COFF file format (used by the Code Composer Studio tools) to the FRESC file format.
- Optionally write a utility to convert from FRESC file format to TI COFF file format, this will allow us to make use of the simulator included in CCS.
- Improve zenext. (Handle the missing instructions; Handle extended instructions properly, ie. add cross references and print instructions manually)
- Reverse engineer the LCD code and write code to interface the LCD.
Once each step is completed, we'll have a development platform to explore from.
I'll be working my way through the list whenever I 've got time, however, if anyone want's to sign up for an item or two, it would save some time.