} // Offset: 0x1410, Size: 0xF0 public override byte[] ToByteArray() { var buffer = new byte[0x1500]; base.ToByteArray().CopyTo(buffer, 0); ExheaderHash.CopyTo(buffer, 0x160); BitConverter.GetBytes(AdditionalHeaderSize).CopyTo(buffer, 0x180); BitConverter.GetBytes(SectorZeroOffset).CopyTo(buffer, 0x184); BitConverter.GetBytes(PartitionFlags).CopyTo(buffer, 0x188); PartitionIdTable.CopyTo(buffer, 0x190); Reserved1.CopyTo(buffer, 0x1D0); Reserved2.CopyTo(buffer, 0x1F0); BitConverter.GetBytes(Card2SaveAddress).CopyTo(buffer, 0x200); BitConverter.GetBytes(CardInfoBitmask).CopyTo(buffer, 0x204); Reserved3.CopyTo(buffer, 0x208); BitConverter.GetBytes(TitleVersion).CopyTo(buffer, 0x310); BitConverter.GetBytes(CardRevision).CopyTo(buffer, 0x312); Reserved4.CopyTo(buffer, 0x314); CardSeedY.CopyTo(buffer, 0x1000); EncryptedCardSeed.CopyTo(buffer, 0x1010); CardSeedAESMAC.CopyTo(buffer, 0x1020); CardSeedNonce.CopyTo(buffer, 0x1030); Reserved5.CopyTo(buffer, 0x103C); FirstNcchHeader.CopyTo(buffer, 0x1100); CardDeviceReserved1.CopyTo(buffer, 0x1200); TitleKey.CopyTo(buffer, 0x1400); CardDeviceReserved2.CopyTo(buffer, 0x1410); return(buffer); }
public override void Log(TextWriter writer) { base.Log(writer); writer.Write($"Reserved1({Reserved1:x4}) "); writer.WriteLine(); writer.WriteLine($"\tvif({Vif}ms) vad({Vad}) numCodecs({NumCodecs})"); foreach (var codec in Codecs) { writer.WriteLine($"\t{codec.Name} rate({codec.Rate}000/s) pt({codec.Pt})"); } writer.Write($"\tReserved2({Reserved2.ToHex()}) "); writer.Write($"MCEI({MCEI}) "); writer.Write($"Reserved3({Reserved3:x2}) "); writer.Write($"PPN({PPN:x4}) "); writer.Write($"Reserved4({Reserved4.ToHex()}) "); writer.Write($"Local({LocalPort1}/{LocalPort2}) "); writer.Write($"Reserved5({Reserved5.ToHex()}) "); writer.Write($"Rx({RxIpAddress}:{RxPort1}/{RxPort2}) "); writer.Write($"Tx({TxIpAddress}:{TxPort1}/{TxPort2}) "); }