public override void load() { headerFile = new HeaderFile(this, mainDir); fntFile = new PhysicalFile(this, mainDir, -1, "fnt.bin", headerFile, 0x40, 0x44, true); fatFile = new PhysicalFile(this, mainDir, -1, "fat.bin", headerFile, 0x48, 0x4C, true); base.load(); arm9ovFile = new PhysicalFile(this, mainDir, -1, "arm9ovt.bin", headerFile, 0x50, 0x54, true); arm7ovFile = new PhysicalFile(this, mainDir, -1, "arm7ovt.bin", headerFile, 0x58, 0x5C, true); // arm9binFile = new Arm9BinFile(this, mainDir, headerFile); // File arm9binFile2 = new PhysicalFile(this, mainDir, true, -2, "arm9.bin", headerFile, 0x20, 0xC, true); arm9binFile = new PhysicalFile(this, mainDir, -1, "arm9.bin", headerFile, 0x20, 0x2C, true); arm9binFile.alignment = 0x1000; arm9binFile.canChangeOffset = false; arm7binFile = new PhysicalFile(this, mainDir, -1, "arm7.bin", headerFile, 0x30, 0x3C, true); arm7binFile.alignment = 0x200; //Not sure what should be used here... bannerFile = new BannerFile(this, mainDir, headerFile); bannerFile.alignment = 0x200; //Not sure what should be used here... uint rsaOffs = headerFile.getUintAt(0x1000); if (rsaOffs == 0) { rsaOffs = headerFile.getUintAt(0x80); headerFile.setUintAt(0x1000, rsaOffs); } rsaSigFile = new PhysicalFile(this, mainDir, -1, "rsasig.bin", (int)rsaOffs, 136); rsaSigFile.canChangeOffset = false; addFile(headerFile); mainDir.childrenFiles.Add(headerFile); addFile(arm9ovFile); mainDir.childrenFiles.Add(arm9ovFile); addFile(arm7ovFile); mainDir.childrenFiles.Add(arm7ovFile); addFile(arm9binFile); mainDir.childrenFiles.Add(arm9binFile); addFile(arm7binFile); mainDir.childrenFiles.Add(arm7binFile); addFile(bannerFile); mainDir.childrenFiles.Add(bannerFile); addFile(rsaSigFile); mainDir.childrenFiles.Add(rsaSigFile); loadOvTable("overlay7", -99, mainDir, arm7ovFile); loadOvTable("overlay9", -98, mainDir, arm9ovFile); loadNamelessFiles(mainDir); }