Phtcache.bin: Difference between revisions

Luigi2us (talk | contribs)
No edit summary
Ichfly (talk | contribs)
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<pre>File header:
== File Header ==
00000-00007: Header 1UJQ00_1
{| class="wikitable" border="1"
00008-0000B: Number of pictures plus 1 (why?)
|-
0000C-00011: Unknown value (seems to be static?) B80B01000000
! Offset
00012-00013: Total number of photos (excluding 2D dups)
! Size
00014-00017: Appears to be file size. It's only 32 bits = 4GB max. A few hundred K
! Description
                larger than the actual size of every file in DCIM (?)
|-
                1607971 vs DCIM/100NIN = 1441792 vs DCIM = 147560 vs files = 1409024
| 0x0
                vs non-disk usage = 1224857
| 0x8
                phtcache non-disk = 456024, disk = 458752
| Always "1UJQ00_1"
                phtcache (non) + files (non) = 1680881 - 1607971 = 72910 = 72K hmm...
|-
                maybe the 72910 is some kind of checksum?
| 0x8
                ( I have no clue, all these notes were probably worthless)
| 0x4
| Number of Pictures + 1
|-
| 0xC
| 0x2
| Total number of photo entries(including unused entries) stored here, this is normally value 3000 (500 on NAND).
|-
| 0xE
| 0x2
| This u16 must be < 2, this is normally value 1 (0 for NAND).
|-
| 0x10
| 0x2
| Unknown, normally value zero.
|-
| 0x12
| 0x2
| Total number of photos(used entries), excluding 2D dups.
|-
| 0x14
| 0x2
| CRC16 over the entire file with this CRC field set to zero when calculating the CRC, with initialval=0 and polynomial=0xA001.
|-
| 0x16
| 0x2
| Size of this header, must be >=0x18(this is always value 0x18).
|-
| 0x18
| 0x98 * Number of Pictures
| Pictures Property, index refereed by 3DS Camera
|}


From 0x0018, one block per picture. Each block is 0x98 bytes long and formatted as such:
The phtcache.bin actual filesize must be at least the following size: hdrsizefield + totalstoredentries*0x98.
00000-00003: Preferred image file format. Should be MPO\x00 or JPG\x00. The inner cam is the only
                one that will yield JPG. 3D pictures are taken even with screen switched to 2D.
00004-0000B: Name of image
0000C-00013: Subfolder of image
00014-0001B: Time taken based on "DS epoch" (start of 1/1/2000) (UNIX+946684800)
0001C-00023: Time last viewed?
00024-00027: UNKNOWN
00028-0002B: UNKNOWN
0002C-0002D: UNKNOWN
0002E-0002F: UNKNOWN
00030-0003F: UNKNOWN
00040-00043: File size


</pre>
== Pictures Property ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x04
| Null-terminated file extension: MPO, JPG, or AVI.
|-
| 0x4
| 0x8
| Image file name, without the extension.
|-
| 0xC
| 0x8
| Directory name under the DCIM directory.
|-
| 0x14
| 0x4
| Time taken based on "DS epoch" (start of 1/1/2000) (UNIX+946684800)
|-
| 0x1C
| 0x4
| Time last viewed?
|-
| 0x24
| 0x4
| ?
|-
| 0x28
| 0x4
| ?
|-
| 0x2C
| 0x4
| ?
|-
| 0x30
| 0x4
| ?
|-
| 0x34
| 0x4
| ?
|-
| 0x38
| 0x4
| ?
|-
| 0x3C
| 0x4
| ?
|-
| 0x40
| 0x4
| File size
|-
| 0x50
| 0x18*4
| 4 blocks, where each block is 0x18-bytes.
|}