KIP1: Difference between revisions
Jump to navigation
Jump to search
Created page with "= KIP1 = {| class="wikitable" border="1" |- ! Offset ! Size ! Description |- | 0x0 | 0x4 | Magic "KIP1" |- | 0x4 | 0xC | Name |- | 0x10 | 0x8 | Program ID |- | 0x18 | 0x4 | Version |- | 0x1C | 0x1 | Main Thread Priority |- | 0x1D | 0x1 | Main Thread Core Number |- | 0x1E | 0x1 | Reserved |- | 0x1F | 0x1 | Flags (bit0=TextCompress, bit1=RoCompress, bit2=DataCompress, bit3=Is64BitInstruction, bit4=ProcessAddressSpace64Bit, bit5=[2.0.0+] UseSecureMemory) |- | 0x20 | 0xC | T..." |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 36: | Line 36: | ||
| 0x1F | | 0x1F | ||
| 0x1 | | 0x1 | ||
| Flags (bit0=TextCompress, bit1=RoCompress, bit2=DataCompress, bit3=Is64BitInstruction, bit4=ProcessAddressSpace64Bit, bit5=[2.0.0+] UseSecureMemory) | | Flags (bit0=TextCompress, bit1=RoCompress, bit2=DataCompress, bit3=Is64BitInstruction, bit4=ProcessAddressSpace64Bit, bit5=[2.0.0+] UseSecureMemory, bit6=[12.0.0+] IsImmortal) | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| Line 96: | Line 96: | ||
Compressed/Binary size can be 0 or lower than expected, this is the case for BSS for example. | Compressed/Binary size can be 0 or lower than expected, this is the case for BSS for example. | ||
===== Compression ===== | |||
The compression used here is BLZ, with a modified footer since 3ds. The footer is now 0xC bytes instead of 0x8, and has the form u32 compressed_data_len; u32 footer_size; u32 additional_len_when_uncompressed; | |||
Latest revision as of 08:29, 19 December 2025
KIP1
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Magic "KIP1" |
| 0x4 | 0xC | Name |
| 0x10 | 0x8 | Program ID |
| 0x18 | 0x4 | Version |
| 0x1C | 0x1 | Main Thread Priority |
| 0x1D | 0x1 | Main Thread Core Number |
| 0x1E | 0x1 | Reserved |
| 0x1F | 0x1 | Flags (bit0=TextCompress, bit1=RoCompress, bit2=DataCompress, bit3=Is64BitInstruction, bit4=ProcessAddressSpace64Bit, bit5=[2.0.0+] UseSecureMemory, bit6=[12.0.0+] IsImmortal) |
| 0x20 | 0xC | Text Segment Header |
| 0x2C | 0x4 | Main Thread Affinity Mask |
| 0x30 | 0xC | Ro Segment Header |
| 0x3C | 0x4 | Main Thread Stack Size |
| 0x40 | 0xC | Data Segment Header |
| 0x4C | 0x4 | Reserved |
| 0x50 | 0xC | Bss Segment Header |
| 0x5C | 0x24 | Reserved |
| 0x80 | 0x80 | Kernel Capability Data |
Segment Header
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Offset |
| 0x4 | 0x4 | Size |
| 0x8 | 0x4 | Compressed/Binary Size |
Compressed/Binary size can be 0 or lower than expected, this is the case for BSS for example.
Compression
The compression used here is BLZ, with a modified footer since 3ds. The footer is now 0xC bytes instead of 0x8, and has the form u32 compressed_data_len; u32 footer_size; u32 additional_len_when_uncompressed;