internal bool Write(ref DJsIO x) { if (!xLoaded) return false; try { if (x == null || !x.Accessed) return false; x.Position = 0x22C; foreach (STFSLicense b in xLisc) { x.Write(b.ID); x.Write(b.Var1); x.Write(b.Flags); } x.Position = 0x344; x.Write((uint)xThisType); x.Write(MetaDataVersion); x.Write(xContentSize); x.Write(MediaID); x.Write(Version_); x.Write(Version_Base); x.Write(TitleID); x.Write(Platform); x.Write(ExecutableType); x.Write(DiscNumber); x.Write(DiscInSet); x.Write(SaveGameID); x.WriteUInt40((ulong)SaveConsoleID); x.Write(ProfileID); x.Position = 0x39D; x.Write(DataFileCount); x.Write(DataFileSize); x.Write(Reserved); x.Write(SeriesID); x.Write(SeasonID); x.Write(SeasonNumber); x.Write(EpidsodeNumber); x.Position += 0x28; x.Write(xDeviceID); for (int i = 0; i < 9; i++) x.Write(xTitles[i], StringForm.Unicode, 0x80, PadLocale.Right, PadType.Null); for (int i = 0; i < 9; i++) x.Write(xDescriptions[i], StringForm.Unicode, 0x80, PadLocale.Right, PadType.Null); x.Write(xPublisher, StringForm.Unicode, 0x40, PadLocale.Right, PadType.Null); x.Write(xTitle, StringForm.Unicode, 0x40, PadLocale.Right, PadType.Null); x.Write(IDTransferByte); x.Write(xPackageImage.Length); x.Write(xContentImage.Length); x.Write(xPackageImage); x.Write(new byte[0x4000 - xPackageImage.Length]); x.Write(xContentImage); x.Write(new byte[(0x4000 - xContentImage.Length)]); return true; } catch { return false; } }