Difference between revisions of "Phtcache.bin"

 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<pre>File header:
 
00000-00007: Header 1UJQ00_1
 
00008-0000B: Number of pictures plus 1 (why?)
 
0000C-00011: Unknown static value : B8-0B-01-00-00-00
 
00012-00013: Total number of photos (excluding 2D dups)
 
00014-00017: Appears to be file size. It's only 32 bits = 4GB max. A few hundred K
 
                larger than the actual size of every file in DCIM (?)
 
                1607971 vs DCIM/100NIN = 1441792 vs DCIM = 147560 vs files = 1409024
 
                vs non-disk usage = 1224857
 
                phtcache non-disk = 456024, disk = 458752
 
                phtcache (non) + files (non) = 1680881 - 1607971 = 72910 = 72K hmm...
 
                maybe the 72910 is some kind of checksum?
 
                ( I have no clue, all these notes were probably worthless)
 
 
From 0x0018, one block per picture. Each block is 0x152 bytes long and formatted as such:
 
00000-00003: Preferred image file format. Should be MPO\x00, JPG\x00 or AVI\x00.
 
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>
 
 
 
== File Header ==
 
== File Header ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Name
+
! Offset
 
! Size  
 
! Size  
 
! Description
 
! Description
 
|-
 
|-
| Unknown
+
| 0x0
| 0x08
+
| 0x8
| always 1UJQ00_1
+
| Always "1UJQ00_1"
 +
|-
 +
| 0x8
 +
| 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).
 
|-
 
|-
| Number of Pictures
+
| 0xE
| 0x04
+
| 0x2
|  
+
| This u16 must be < 2, this is normally value 1 (0 for NAND).
 
|-
 
|-
| Unknown
+
| 0x10
| 0x06
+
| 0x2
| Always B8-0B-01-00-00-00
+
| Unknown, normally value zero.
 
|-
 
|-
| Total number of photos
+
| 0x12
| 0x02
+
| 0x2
| excluding 2D dups
+
| Total number of photos(used entries), excluding 2D dups.
 
|-
 
|-
| Unknown
+
| 0x14
| 0x06
+
| 0x2
| File size ?
+
| CRC16 over the entire file with this CRC field set to zero when calculating the CRC, with initialval=0 and polynomial=0xA001.
 
|-
 
|-
| Pictures Property
+
| 0x16
| 0x152 * Number of Pictures
+
| 0x2
| Index refereed by 3DS Camera
+
| Size of this header, must be >=0x18(this is always value 0x18).
 
|-
 
|-
 +
| 0x18
 +
| 0x98 * Number of Pictures
 +
| Pictures Property, index refereed by 3DS Camera
 
|}
 
|}
 +
 +
The phtcache.bin actual filesize must be at least the following size: hdrsizefield + totalstoredentries*0x98.
  
 
== Pictures Property ==
 
== Pictures Property ==
Line 68: Line 52:
 
! Description
 
! Description
 
|-
 
|-
| Extension
+
| 0x0
 
| 0x04
 
| 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.
 
|}
 
|}

Latest revision as of 18:10, 11 December 2014

File HeaderEdit

Offset Size Description
0x0 0x8 Always "1UJQ00_1"
0x8 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

The phtcache.bin actual filesize must be at least the following size: hdrsizefield + totalstoredentries*0x98.

Pictures PropertyEdit

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.