NPDM: Difference between revisions

Update Debug Flags
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 9: Line 9:
| 0x0
| 0x0
| 0x80
| 0x80
| [[#META|META]]
| [[#Meta|Meta]]
|-
|-
| 0x80
| 0x80
| <Varies>
| Variable
| [[#ACID|ACID]]
| [[#Acid|Acid]]
|-
|-
| <See META>
| Variable
| <See META>
| Variable
| [[#ACI0|ACI0]]
| [[#Aci|Aci]]
|}
|}


= META =
= Meta =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 85: Line 85:
| 0x70
| 0x70
| 0x4
| 0x4
| [[#ACI0|AciOffset]]
| [[#Aci|AciOffset]]
|-
|-
| 0x74
| 0x74
| 0x4
| 0x4
| [[#ACI0|AciSize]]
| [[#Aci|AciSize]]
|-
|-
| 0x78
| 0x78
| 0x4
| 0x4
| [[#ACID|AcidOffset]]
| [[#Acid|AcidOffset]]
|-
|-
| 0x7C
| 0x7C
| 0x4
| 0x4
| [[#ACID|AcidSize]]
| [[#Acid|AcidSize]]
|}
|}


Line 110: Line 110:
|-
|-
| 1-3
| 1-3
| ProcessAddressSpace (0x00 = AddressSpace32Bit, 0x01 = AddressSpace64BitOld, 0x02 = AddressSpace32BitNoReserved, 0x03 = AddressSpace64Bit)
| [[#ProcessAddressSpace|ProcessAddressSpace]]
|-
|-
| 4
| 4
Line 120: Line 120:
| 6
| 6
| [18.0.0+] EnableAliasRegionExtraSize
| [18.0.0+] EnableAliasRegionExtraSize
|-
| 7
| [19.0.0-19.0.1] PreventCodeReads
|}
=== ProcessAddressSpace ===
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0
| AddressSpace32Bit
|-
| 1
| AddressSpace64BitOld
|-
| 2
| AddressSpace32BitNoReserved
|-
| 3
| AddressSpace64Bit
|}
|}


Line 131: Line 153:


Maximum size as is 0x1FE00000.
Maximum size as is 0x1FE00000.


== Version ==
== Version ==
Line 143: Line 164:
Must be aligned to 0x1000. If zero, kernel will start the process's initial thread with sp=0.
Must be aligned to 0x1000. If zero, kernel will start the process's initial thread with sp=0.


= ACID =
= Acid =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 232: Line 253:
|-
|-
| 2-5
| 2-5
| [5.0.0+] MemoryRegion (0 = Application, 1 = Applet, 2 = SecureSystem, 3 = NonSecureSystem)
| [5.0.0+] [[#MemoryRegion|MemoryRegion]]
|-
| 6
| Unused?
|-
| 7
| [21.0.0+] LoadBrowserCoreDll
|}
|}


MemoryRegion is set to Application for "starter" and NonSecureSystem for "nvservices".
MemoryRegion is set to Application for "starter" and NonSecureSystem for "nvservices".


= ACI0 =
When LoadBrowserCoreDll flag is set, an additional NPDM + NSOs (wkc0-wkc9) will be loaded from program id 010000000000085D (not present on retail).
 
=== MemoryRegion ===
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0
| Application
|-
| 1
| Applet
|-
| 2
| SecureSystem
|-
| 3
| NonSecureSystem
|}
 
= Aci =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 290: Line 338:


= FsAccessControl =
= FsAccessControl =
For [[#ACID|ACID]] this is a simple descriptor as follows:
For [[#Acid|Acid]] this is a simple descriptor as follows:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 342: Line 390:
|}
|}


For [[#ACI0|ACI0]] this embeds data as follows:
For [[#Aci|Aci]] this embeds data as follows:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 402: Line 450:
|-
|-
! Bits
! Bits
! Name
! Description
! Description
|-
|-
| 0
| 0
| ApplicationInfo
| ApplicationInfo (MountContent* is accessible when set)
| MountContent* is accessible when set.
|-
|-
| 1
| 1
| BootModeControl
| BootModeControl
|
|-
|-
| 2
| 2
| Calibration
| Calibration
|
|-
|-
| 3
| 3
| SystemSaveData
| SystemSaveData
|
|-
|-
| 4
| 4
| GameCard
| GameCard
|
|-
|-
| 5
| 5
| SaveDataBackUp
| SaveDataBackUp
|
|-
|-
| 6
| 6
| SaveDataManagement
| SaveDataManagement
|
|-
|-
| 7
| 7
| BisAllRaw
| BisAllRaw
|
|-
|-
| 8
| 8
| GameCardRaw
| GameCardRaw
|
|-
|-
| 9
| 9
| GameCardPrivate
| GameCardPrivate
|
|-
|-
| 10
| 10
| SetTime
| SetTime
|
|-
|-
| 11
| 11
| ContentManager
| ContentManager
|
|-
|-
| 12
| 12
| ImageManager
| ImageManager
|
|-
|-
| 13
| 13
| CreateSaveData
| CreateSaveData
|
|-
|-
| 14
| 14
| SystemSaveDataManagement
| SystemSaveDataManagement
|
|-
|-
| 15
| 15
| BisFileSystem
| BisFileSystem
|
|-
|-
| 16
| 16
| SystemUpdate
| SystemUpdate
|
|-
|-
| 17
| 17
| SaveDataMeta
| SaveDataMeta
|
|-
|-
| 18
| 18
| DeviceSaveData
| DeviceSaveData
|
|-
|-
| 19
| 19
| SettingsControl
| SettingsControl
|
|-
|-
| 20
| 20
| SystemData
| SystemData
|
|-
|-
| 21
| 21
| SdCard
| SdCard
|
|-
|-
| 22
| 22
| Host
| Host
|
|-
|-
| 23
| 23
| FillBis
| FillBis
|
|-
|-
| 24
| 24
| CorruptSaveData
| CorruptSaveData
|
|-
|-
| 25
| 25
| SaveDataForDebug
| SaveDataForDebug
|
|-
|-
| 26
| 26
| FormatSdCard
| FormatSdCard
|
|-
|-
| 27
| 27
| GetRightsId
| GetRightsId
|
|-
|-
| 28
| 28
| RegisterExternalKey
| RegisterExternalKey
|
|-
|-
| 29
| 29
| RegisterUpdatePartition
| RegisterUpdatePartition
|
|-
|-
| 30
| 30
| SaveDataTransfer
| SaveDataTransfer
|
|-
|-
| 31
| 31
| DeviceDetection
| DeviceDetection
|
|-
|-
| 32
| 32
| AccessFailureResolution
| AccessFailureResolution
|
|-
|-
| 33
| 33
| SaveDataTransferVersion2
| SaveDataTransferVersion2
|
|-
|-
| 34
| 34
| RegisterProgramIndexMapInfo
| RegisterProgramIndexMapInfo
|
|-
|-
| 35
| 35
| CreateOwnSaveData
| CreateOwnSaveData
|
|-
|-
| 36
| 36
| MoveCacheStorage
| MoveCacheStorage
|
|-
|-
| 37
| 37
| DeviceTreeBlob
| DeviceTreeBlob
|
|-
|-
| 38
| 38
| NotifyErrorContextServiceReady
| NotifyErrorContextServiceReady
|
|-
|-
| 39-61
| 39
| CalibrationSystemData
|-
| 40
| CalibrationLog
|-
| 41
| StorageSecure
|-
| 42
| StorageControl
|-
| 43
| GameCardReport
|-
| 44
| MarkBeforeEraseBis
|-
| 45
| HtmlViewer
|-
| 46
| ApplicationSaveDataBackUp
|-
| 47-61
| Reserved
| Reserved
|
|-
|-
| 62
| 62
| Debug
| Debug (ignored on non-DebugMode, see [[SPL_services#GetConfig|here]])
| See [[SPL_services#GetConfig|here]].
|-
|-
| 63
| 63
| FullPermission
| FullPermission (ignored on non-DebugMode, all [[Filesystem_services#Permissions|permission types]] which check a bitmask have this bit set)
| Enables access to everything: all [[Filesystem_services#Permissions|permission types]] which check a bitmask have this bit set.
|}
|}