As we probe deeper into the DSi, we come across some neat stuff. Scanlime got a new FPGA board from Sparkfun, which gives him more GPIOs and the ability to run them at the 1.8v necessary to properly talk to the RAM.
Sorting through the data we get from this setup is still a considerable challenge. Here’s a trace taken while the video camera is actually capturing video:
There’s some code for decoding this trace format in scanlime’s svn repo: http://svn.navi.cx/misc/trunk/nds/dsi/ram-tracer/decoder/
If you’d like to play along, see if you can distinguish between:
- Instruction fetches from RAM
- Reads/writes to RAM buffers (statically or dynamically allocated) by code running on either processor
- Reads/writes to control flags, used for e.g. synchronization between the ARM7 and ARM9
- DMA writes from the camera hardware to RAM of the video data
The video data makes up the vast majority of the data in this dump; if you’re working on homebrew code to talk to the camera, this might be helpful. For the rest of you — can you make a tool to visualize the data flows in these traces, or a tool to decode the video frames in scanlime’s dump?
There’s also a hidden message in the video =)