Phtcache.bin: Difference between revisions

No edit summary
Ichfly (talk | contribs)
 
(9 intermediate revisions by 3 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 value (seems to be static?) B80B01000000
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 0x98 bytes long and formatted as such:
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>
== 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
|-
|-
| Number of Pictures
| 0xC
| 0x04
| 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.
|-
|-
| Unknown
| 0x12
| 0x05
| 0x2
| seems to be static?
| Total number of photos(used entries), excluding 2D dups.
|-
|-
| Total number of photos
| 0x14
| 0x01
| 0x2
| excluding 2D dups
| CRC16 over the entire file with this CRC field set to zero when calculating the CRC, with initialval=0 and polynomial=0xA001.
|-
|-
| Unknown
| 0x16
| 0x05
| 0x2
| File size?
| Size of this header, must be >=0x18(this is always value 0x18).
|-
|-
| Pictures Property
| 0x18
| 0x98 * Number of Pictures
| 0x98 * Number of Pictures
| Index refereed by 3DS Camera
| 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 ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Name
! Offset
! Size  
! Size  
! 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.
|}
|}