Findings by Coutts[]
RoaldFre's initial VRAM findings can be found here: VRAM/500D
I have started to sit down and go through dumps for every mode, to verify the vram addresses and resolutions. I followed the guide on the VRAM/550d page and dumped the 0x0, 0x1 and 0x4 segments twice. I found everything in 4.bin.
Odd Findings[]
- When I dumped in 480p video mode (recording and idle), the camera would appear to crash; the mirror flipped down and the screen went black, but the LED was still lit and it continued to dump. It did this while hooked up with HDMI as well, but only while recording. This only happened in 480p mode.
- Using a new code update from Alex which allowed mem_spy to filter out just DMA addresses, I was able to find 6 new addresses that were not documented before. They were only present while recording (not idle), and each recording mode had it's own 2 unique addresses. This was using the DMA address 0x8404. When I loaded the dumps I made while recording into img.py, I put the start address as the address that was obtaind from that pointer. I found that the buffer addresses weren't correct, and needed adjusting. I'm not sure what this means, but I'm assuming for now that we should use the addresses I found after fine tuning with img.py. See this post for further explanation. EDIT: After testing, the address that I found for 480p from a newly discovered DMA pointer wasn't valid. It was just the HD buffer but offset a little. 1080p and 720p modes both had new addresses though.
- When I examined the 720p idle dump (non hdmi), I noticed that 0x41b07800 had a different image than 0x43738800 / 0x43b48800. It wasn't distorted, it was a clean image, so I wonder if I just moved the camera or something. The buffer is still valid, I think I just moved the camera at some point during the dump process. EDIT: I just dumped this section again with the same results, the image differs as if the camera moved, but it didn't. Very odd... Not sure how to explain this. EDIT: Alex says this could be due to some buffers not being cleared until the next time they are used. I am going to assume that the reason that this is all due to what Alex explained.
- Addresses in the 0x46xxxxxxx format often have complimenting buffers at 0x48xxxxxx. Might be more buffers than we expected???
DMA Pointers[]
The following pointers are present in all recording and live view modes.
0x26a8 - Live View Buffers
0x41b07800 / 0x43738800 / 0x43b48800
0x48a0 - HD Buffers
0x46000080 / 0x48000080
No HDMI Monitor Attached[]
Live View[]
The following buffers are present while in live view mode.
0x41b07800 / 0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 928x616
- Pitch: 1856
- Aspect Ratio: 1.506
Live View x5/x10 Zoom[]
0x41b07800 / 0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 944x632
- Pitch: 1888
- Aspect Ratio: 1.494
1080p Idle[]
0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 1576x1048
- Pitch: 3152
- Aspect Ratio: 1.504
1080p Recording[]
0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 1576x1048
- Pitch: 3152
- Aspect Ratio: 1.504
0x46042fb0 / 0x48042fb0[]
- Resolution: 1576x961
- Pitch: 3152
- Aspect Ratio: 1.640
720p Idle[]
0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 928x616
- Pitch: 1856
- Aspect Ratio: 1.506
720p Recording[]
0x41b07800 / 0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
------------changed in v1.1.1---------
- Resolution: 720x425
- Pitch: 1440
- Aspect Ratio: 1.694
0x46000080 / 0x48000080[]
- Resolution: 928x616
- Pitch: 1856
- Aspect Ratio: 1.506
-------changed in v1.1.1-----------
- Resolution: 1576x632
- Pitch: 3152
- Aspect Ratio: 2.494
0x46027000 / 0x48027000[]
- Resolution: 928x530
- Pitch: 1856
- Aspect Ratio: 1.751
480p Idle[]
0x41b07800 / 0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 928x616
- Pitch: 1856
- Aspect Ratio: 1.506
480p Recording[]
0x43738800 / 0x43b48800[]
- Resolution: 720x424
- Pitch: 1440
- Aspect Ratio: 1.698
0x46000080 / 0x48000080[]
- Resolution: 720x480
- Pitch: 1440
- Aspect Ratio: 1.5
HDMI Monitor Attached[]
Note: It has come to my attention that yuv422 buffer resolutions change from monitor to monitor, so there is no way to map this out. So for the next while at least, no support for HDMI will exist.
- Coutts