NdsForge.NET 1.0.1
Read, validate, edit, compare, and build Nintendo DS and DSi images from .NET
Loading...
Searching...
No Matches
NdsForge.NdsDsiBuildMetadata Class Referencesealed

Supplies DSi-only execution, service, storage, and policy metadata while retaining unmodeled extension bytes from an optional template. Physical program, digest, banner, and total-size fields remain layout-owned. More...

Public Member Functions

NdsDsiBuildMetadata SetMemoryBankSettings (ReadOnlySpan< byte > settings)
 Copies the exact MBK and WRAM register image stored at header offsets 0x180-0x1AF.
NdsDsiBuildMetadata SetAgeRatings (ReadOnlySpan< byte > ratings)
 Copies the sixteen raw authority slots without guessing territory-specific flag interpretation.

Static Public Member Functions

static NdsDsiBuildMetadata FromHeader (NdsDsiHeader header)
 Copies all 0xE80 extension bytes from a parsed header, then initializes typed properties from the same source. Later layout and integrity fields are deliberately regenerated rather than blindly preserved.

Properties

byte DsiFlags = 0x01 [get, set]
 Preserves common-header DSi behavior flags separately from the application flags in the extension.
uint RegionFlags = uint.MaxValue [get, set]
 Defines the DSi territories in which system software may expose the title; all bits set is homebrew-friendly.
uint AccessControl [get, set]
 Controls service and hardware capabilities requested from the DSi execution environment.
uint ScfgExtMask [get, set]
 Limits which SCFG_EXT hardware-configuration bits the application may change at runtime.
byte ApplicationFlags [get, set]
 Preserves the application-policy byte at extended-header offset 0x1BF.
uint Arm7DeviceListAddress [get, set]
 Points ARM7i services to their runtime device-list structure rather than to a cartridge region.
ulong TitleId [get, set]
 Identifies the title to DSi services and save storage; it is independent from the four-byte game code.
uint PublicSaveSize [get, set]
 Requests public writable save bytes without allocating those bytes inside the ROM image.
uint PrivateSaveSize [get, set]
 Requests private writable save bytes without allocating those bytes inside the ROM image.
NdsRegion ModcryptArea1 [get, set]
 Declares the first modcrypt-transformed image interval, or an empty region when modcrypt is unused.
NdsRegion ModcryptArea2 [get, set]
 Declares the second modcrypt-transformed image interval, or an empty region when modcrypt is unused.
NdsDsiIntegrityOptions Integrity = NdsDsiIntegrityOptions.Unauthenticated [get, set]
 Determines whether authentication fields are cleared or computed under an explicitly named key policy.
NdsDsiDigestOptionsDigests [get, set]
 Enables hierarchical content authentication when non-null. Building tables requires the same explicit HMAC key policy used for component fields; null emits the format's valid all-zero “digests absent” form.

Detailed Description

Supplies DSi-only execution, service, storage, and policy metadata while retaining unmodeled extension bytes from an optional template. Physical program, digest, banner, and total-size fields remain layout-owned.

Definition at line 7 of file NdsDsiBuildMetadata.cs.

Member Function Documentation

◆ FromHeader()

NdsDsiBuildMetadata NdsForge.NdsDsiBuildMetadata.FromHeader ( NdsDsiHeader header)
inlinestatic

Copies all 0xE80 extension bytes from a parsed header, then initializes typed properties from the same source. Later layout and integrity fields are deliberately regenerated rather than blindly preserved.

Parameters
headerParsed extension whose source image may be disposed after this method returns.
Returns
A detached metadata recipe retaining reserved bytes but using unsigned integrity by default.

Definition at line 94 of file NdsDsiBuildMetadata.cs.

◆ SetAgeRatings()

NdsDsiBuildMetadata NdsForge.NdsDsiBuildMetadata.SetAgeRatings ( ReadOnlySpan< byte > ratings)
inline

Copies the sixteen raw authority slots without guessing territory-specific flag interpretation.

Parameters
ratingsExactly sixteen bytes corresponding to header offsets 0x2F0-0x2FF.
Returns
The same metadata object for fluent recipe configuration.

Definition at line 133 of file NdsDsiBuildMetadata.cs.

◆ SetMemoryBankSettings()

NdsDsiBuildMetadata NdsForge.NdsDsiBuildMetadata.SetMemoryBankSettings ( ReadOnlySpan< byte > settings)
inline

Copies the exact MBK and WRAM register image stored at header offsets 0x180-0x1AF.

Parameters
settingsExactly 48 bytes in native extended-header order.
Returns
The same metadata object for fluent recipe configuration.

Definition at line 119 of file NdsDsiBuildMetadata.cs.

Property Documentation

◆ AccessControl

uint NdsForge.NdsDsiBuildMetadata.AccessControl
getset

Controls service and hardware capabilities requested from the DSi execution environment.

Definition at line 35 of file NdsDsiBuildMetadata.cs.

◆ ApplicationFlags

byte NdsForge.NdsDsiBuildMetadata.ApplicationFlags
getset

Preserves the application-policy byte at extended-header offset 0x1BF.

Definition at line 41 of file NdsDsiBuildMetadata.cs.

◆ Arm7DeviceListAddress

uint NdsForge.NdsDsiBuildMetadata.Arm7DeviceListAddress
getset

Points ARM7i services to their runtime device-list structure rather than to a cartridge region.

Definition at line 44 of file NdsDsiBuildMetadata.cs.

◆ Digests

NdsDsiDigestOptions? NdsForge.NdsDsiBuildMetadata.Digests
getset

Enables hierarchical content authentication when non-null. Building tables requires the same explicit HMAC key policy used for component fields; null emits the format's valid all-zero “digests absent” form.

Definition at line 86 of file NdsDsiBuildMetadata.cs.

◆ DsiFlags

byte NdsForge.NdsDsiBuildMetadata.DsiFlags = 0x01
getset

Preserves common-header DSi behavior flags separately from the application flags in the extension.

Definition at line 29 of file NdsDsiBuildMetadata.cs.

◆ Integrity

NdsDsiIntegrityOptions NdsForge.NdsDsiBuildMetadata.Integrity = NdsDsiIntegrityOptions.Unauthenticated
getset

Determines whether authentication fields are cleared or computed under an explicitly named key policy.

Definition at line 80 of file NdsDsiBuildMetadata.cs.

◆ ModcryptArea1

NdsRegion NdsForge.NdsDsiBuildMetadata.ModcryptArea1
getset

Declares the first modcrypt-transformed image interval, or an empty region when modcrypt is unused.

Definition at line 56 of file NdsDsiBuildMetadata.cs.

◆ ModcryptArea2

NdsRegion NdsForge.NdsDsiBuildMetadata.ModcryptArea2
getset

Declares the second modcrypt-transformed image interval, or an empty region when modcrypt is unused.

Definition at line 68 of file NdsDsiBuildMetadata.cs.

◆ PrivateSaveSize

uint NdsForge.NdsDsiBuildMetadata.PrivateSaveSize
getset

Requests private writable save bytes without allocating those bytes inside the ROM image.

Definition at line 53 of file NdsDsiBuildMetadata.cs.

◆ PublicSaveSize

uint NdsForge.NdsDsiBuildMetadata.PublicSaveSize
getset

Requests public writable save bytes without allocating those bytes inside the ROM image.

Definition at line 50 of file NdsDsiBuildMetadata.cs.

◆ RegionFlags

uint NdsForge.NdsDsiBuildMetadata.RegionFlags = uint.MaxValue
getset

Defines the DSi territories in which system software may expose the title; all bits set is homebrew-friendly.

Definition at line 32 of file NdsDsiBuildMetadata.cs.

◆ ScfgExtMask

uint NdsForge.NdsDsiBuildMetadata.ScfgExtMask
getset

Limits which SCFG_EXT hardware-configuration bits the application may change at runtime.

Definition at line 38 of file NdsDsiBuildMetadata.cs.

◆ TitleId

ulong NdsForge.NdsDsiBuildMetadata.TitleId
getset

Identifies the title to DSi services and save storage; it is independent from the four-byte game code.

Definition at line 47 of file NdsDsiBuildMetadata.cs.


The documentation for this class was generated from the following file: