Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }