MPO: Difference between revisions

Elisherer (talk | contribs)
Added..
 
m fixed broken link
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:File formats]]
=== Overview ===
=== Overview ===


MPO = Multi-Picture Object
MPO = Multi-Picture Object
Document describing the file format used in mpo files:
http://www.cipa.jp/std/documents/e/DC-007_E.pdf


Nintendo uses a common format for its 3D pictures.
Nintendo uses a common format for its 3D pictures.
Line 8: Line 12:


EXIF is a standard that specifies the formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras.[http://en.wikipedia.org/wiki/Exchangeable_image_file_format]
EXIF is a standard that specifies the formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras.[http://en.wikipedia.org/wiki/Exchangeable_image_file_format]


=== Nintendo's EXIF Data Structure ===
=== Nintendo's EXIF Data Structure ===
Line 41: Line 44:
|0x0131
|0x0131
|Software
|Software
|00204  
|Depends on the software: 00204 for the Camera (EU), 00227 for the Mii Editor (EU), 00955 for KH3D (EU)
|-
|-
|0x0132
|0x0132
Line 134: Line 137:
|LuminanceTable
|LuminanceTable
|[DATA - 128 bytes]
|[DATA - 128 bytes]
|}
==== Nintendo's EXIF MakerNote Tag ====
'''This still need to be figured out:'''
The MakerNote is made with Tiff Exif information (Big Endian)
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
|Software-specific data
|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'''
Different from the wrapping structure this structure is Little-Endian.
{| class="wikitable" border="1"
|-
!  Offset
!  Description
!  Type
!  Default Value
|-
|0x00
|Magic
|char[4]
|{'3','D','S','1'}
|-
|0x04
|?
|uint32
|1 / 2 / 4 / 5
|-
|0x08
|Timestamp
|uint32
|Number of seconds since 1/1/2000 00:00:00
|-
|0x0C
|Padding
|uint32
|0
|-
|0x10
|Title ID Low
|uint32
|like the title id low but without the last two letters
|-
|0x14
|Flags
|uint32
|
|-
|0x18
|Console ID
|byte[4]
|unique identifier
|-
|0x1C
|Padding
|byte[12]
|0
|-
|0x28
|3D Parallax
|float
|[-52,54]
|-
|0x2C
|Padding
|uint32
|0
|-
|0x30
|Category
|uint16
|0x2000 for a man, 0x4000 a woman, 0x1000 a mii...
|-
|0x32
|Filter
|uint16
|
|-
|0x34
|Padding
|byte[12]
|0
|}
|}