Phtcache.bin: Difference between revisions

No edit summary
Ichfly (talk | contribs)
 
(6 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
| seems to be static?
| 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.
|}
|}