Line 138: |
Line 138: |
| ==== Nintendo's EXIF MakerNote Tag ==== | | ==== Nintendo's EXIF MakerNote Tag ==== |
| '''This still need to be figured out:''' | | '''This still need to be figured out:''' |
− | We will address the MakerNote byte array as 'mnote' (i.e. mnote[0] is the first byte)
| |
| | | |
− | There is a dynamic byte array at first which its size is at mnote[9].
| + | The MakerNote is made with Tiff Exif information (Big Endian) |
− | After the dynamic array starting at mnote[6 + mnote[9]] an 88 bytes array starts. | + | |
| + | first 2 bytes are the IFD Count (IFD is a 12 byte tag), Regulary there are 2 IFDs. |
| + | |
| + | '''IFD structure''' |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Tag |
| + | ! Type |
| + | ! Count/Value |
| + | ! Value/Offset |
| + | |- |
| + | |2 bytes |
| + | |2 bytes |
| + | |4 bytes |
| + | |4 bytes |
| + | |} |
| + | |
| + | Nintendo's IFDs |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Tag |
| + | ! Desc |
| + | ! Type |
| + | ! Count/Value |
| + | ! Value/Offset |
| + | |- |
| + | |0x1100 |
| + | |Unknown |
| + | |7-Undefined |
| + | |Count |
| + | |Count=1 ? Value : Offset |
| + | |- |
| + | |0x1101 |
| + | |Nintendo 64byte Note |
| + | |7-Undefined |
| + | |Count |
| + | |Offset |
| + | |} |
| + | |
| + | After the IFDs comes a 4 byte Zero ( {0,0,0,0} ). |
| + | |
| + | And then the Data the IFDs point at (if at all) |
| + | |
| + | Nintendo's 64Byte Note |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Offset from 6+mnote[9] | + | ! Offset |
| ! Description | | ! Description |
| ! Type | | ! Type |
Line 151: |
Line 194: |
| |- | | |- |
| |0 | | |0 |
− | |Comment
| |
− | |String[24] null terminated
| |
− | |0 for a 3D picture / <some_text> if taken from AR game
| |
− | |-
| |
− | |24
| |
| |Magic | | |Magic |
| |Byte[4] | | |Byte[4] |
| |{'3','D','S','1'} | | |{'3','D','S','1'} |
| |- | | |- |
− | |28 | + | |38 |
− | |Tags
| |
| |Unknown | | |Unknown |
| |Unknown | | |Unknown |
| + | |Unknown |
| + | |- |
| + | |40 |
| + | |3D Parallax* |
| + | |NegInt? |
| + | |? |
| |} | | |} |
| | | |
− | What is known that on mnote[mnote[9]+72] & mnote[mnote[9]+73] lays the parallax value.
| + | *The 3D Parallax value is the distance that the right image needed to move in order to get focus. |
− | The parallax value is the distance that the right image needed to move in order to get focus. | |
| | | |
| My formula to get that value isn't so good but here it is: | | My formula to get that value isn't so good but here it is: |
− | b0 = mnote[mnote[9]+72]
| |
− | b1 = mnote[mnote[9]+73]
| |
| | | |
− | x = (b1 - 0xC0) << 8 + b0; | + | x = (lsb - 0xC0) << 8 + msb; |
| | | |
| Parallax = - round( 2 ^ (x/128 + 2) ) | | Parallax = - round( 2 ^ (x/128 + 2) ) |
| | | |
| If someone makes sense of this, please explain or maybe correct.. | | If someone makes sense of this, please explain or maybe correct.. |