Changes

204 bytes added ,  22:12, 28 August 2011
→‎Nintendo's EXIF MakerNote Tag: Corrections for the Nintendo's MakerNote (progress :-) )
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..
399

edits