Changes

2,219 bytes removed ,  00:03, 4 May 2019
Migrate to Inner FAT
Line 129: Line 129:  
== BDRI ==
 
== BDRI ==
   −
Information stored about titles in these Title Database files are stored in two parts in a BDRI partition. Firstly in a Title Entry Table, and secondly in a Title Info Table.
+
This is a variant of [[Inner FAT|FAT filesystem]]. It consists one "root" directory and multiple "files". Each "file" is one title info entry described below.
   −
{| class="wikitable"
+
== Title Info Entry ==
|-
  −
! Start
  −
! Length
  −
! Description
  −
|-
  −
| 0x0
  −
| 4
  −
| Database Magic ("BDRI")
  −
|-
  −
| 0x4
  −
| 4
  −
| File Format Version (0x30000)
  −
|-
  −
| 0x8
  −
| 8
  −
| Unknown
  −
|-
  −
| 0x10
  −
| 8
  −
| File Size (including pre header), in blocks (see next field)
  −
|-
  −
| 0x18
  −
| 4
  −
| Block Size (Usually 0x80; 0x200 for ticket.db)
  −
|-
  −
| 0x1C
  −
| 4
  −
| Reserved
  −
|-
  −
| 0x20
  −
| 0x20
  −
| Unknown/Constant
  −
|-
  −
| 0x40
  −
| 0x18
  −
| Unknown
  −
|-
  −
| 0x58
  −
| 8
  −
| Relative Title Entry Table Offset
  −
|-
  −
| 0x60
  −
| 0x20
  −
| Unknown
  −
|}
     −
== Title Entry Table ==
+
An entry contains information taken from both the application NCCH file(s) and TMD.
 
  −
This contains 'Entries' for all the titles stored in the database. However this just appears to be an indexing table, the majority of title information is kept in a Title Info Table, which these index entries point to. Title Entries start immediately after the Title Entry Table Header. And there is no padding between entries.
  −
 
  −
=== Header ===
  −
 
  −
{| class="wikitable"
  −
|-
  −
! Start
  −
! Length
  −
! Description
  −
|-
  −
| 0x0
  −
| 4
  −
| Unknown/Magic? (usually = 0x2)
  −
|-
  −
| 0x4
  −
| 4
  −
| Unknown/Magic? (usually = 0x3)
  −
|-
  −
| 0x8
  −
| 0x24
  −
| Reserved
  −
|-
  −
| 0x2C
  −
| 4
  −
| Number of used Title Entries
  −
|-
  −
| 0x30
  −
| X - 0x30
  −
| Alignment padding for X = BDRI Block Size
  −
|-
  −
| X
  −
| 4
  −
| MAX Number of Title Entries
  −
|-
  −
| X + 0x04
  −
| 4
  −
| Unknown
  −
|-
  −
| X + 0x08
  −
| 0x20
  −
| Reserved
  −
|}
  −
 
  −
=== Title Entry Format ===
  −
 
  −
The entries are 0x2C bytes long.
  −
 
  −
{| class="wikitable"
  −
|-
  −
! Start
  −
! Length
  −
! Description
  −
! ticket.db only
  −
|-
  −
| 0x0
  −
| 4
  −
| Unknown
  −
| Unknown (0)
  −
|-
  −
| 0x4
  −
| 4
  −
| Active Flag. If this isn't = 0x1, then this entry slot is unused
  −
| same
  −
|-
  −
| 0x8
  −
| 0x8
  −
| Title ID
  −
| same
  −
|-
  −
| 0x10
  −
| 4
  −
| Title Entry Index
  −
| same
  −
|-
  −
| 0x14
  −
| 4
  −
| Relative Title Info Offset, in blocks (see next field)
  −
| Unknown
  −
|-
  −
| 0x18
  −
| 0x4
  −
| Block Size (Usually 0x80; 0x200 for ticket.db)
  −
| Relative Title Info Offset, in BDRI blocks
  −
|-
  −
| 0x1c
  −
| 4
  −
| Reserved
  −
| Title Info size, in bytes
  −
|-
  −
| 0x20
  −
| 4
  −
| Unknown, occasionally this value is the title's "Title ID lower"
  −
| Unknown (0)
  −
|-
  −
| 0x24
  −
| 0x4
  −
| Unknown
  −
| same
  −
|-
  −
| 0x28
  −
| 0x4
  −
| Unknown
  −
| same
  −
|}
  −
 
  −
* The actual Title Info offset is calculated by the following: Offset of BDRI Header + Relative Offset of Title Entry Table + Relative Title Info Offset
  −
 
  −
== Title Info Table ==
  −
 
  −
These consist of 0x80 byte long entries, pointed to by the title index entries. They contain information taken from both the application NCCH file(s) and TMD.
      
{| class="wikitable"
 
{| class="wikitable"
242

edits