public void readOverlaysData(BinaryReader reader, uint offset, int size, Nds.NdsFat_s FAT) { reader.BaseStream.Seek((long)offset, SeekOrigin.Begin); for (int i = 0; i < (size / 0x20); i++) { Overlay_s actualOverlay = Overlay[i]; actualOverlay = readOverlayData(reader, FAT, i, actualOverlay); Overlay[i] = actualOverlay; } }
private static void readOverlay(BinaryReader reader) { Overlay_s item = new Overlay_s { OverlayID = reader.ReadUInt32(), RAM_Adress = reader.ReadUInt32(), RAM_Size = reader.ReadUInt32(), BSS_Size = reader.ReadUInt32(), stInitStart = reader.ReadUInt32(), stInitEnd = reader.ReadUInt32(), fileID = reader.ReadUInt32(), reserved = reader.ReadUInt32() }; Overlay.Add(item); }
private static Overlay_s readOverlayData(BinaryReader reader, Nds.NdsFat_s FAT, int i, Overlay_s actualOverlay) { actualOverlay.Over = new ClosableMemoryStream(); actualOverlay.Ov_Start = FAT.getFileStartAt((int)actualOverlay.fileID); actualOverlay.Ov_End = FAT.getFileEndAt((int)actualOverlay.fileID); reader.BaseStream.Seek((long)actualOverlay.Ov_Start, SeekOrigin.Begin); Utils.loadStream(reader, actualOverlay.Ov_End - actualOverlay.Ov_Start, actualOverlay.Over); FAT.setFileStreamAt(i, actualOverlay.Over); return(actualOverlay); }