void FromIsoPathInternal(string isoPath) { //make a fake cue file to represent this iso file const string isoCueWrapper = @" FILE ""xarp.barp.marp.farp"" BINARY TRACK 01 MODE1/2048 INDEX 01 00:00:00 "; string cueDir = String.Empty; var cue = new Cue(); CueFileResolver["xarp.barp.marp.farp"] = isoPath; cue.LoadFromString(isoCueWrapper); FromCueInternal(cue, cueDir, new CueBinPrefs()); //var session = new DiscTOC.Session(); //session.num = 1; //TOC.Sessions.Add(session); //var track = new DiscTOC.Track(); //track.num = 1; //session.Tracks.Add(track); //var index = new DiscTOC.Index(); //index.num = 0; //track.Indexes.Add(index); //index = new DiscTOC.Index(); //index.num = 1; //track.Indexes.Add(index); //var fiIso = new FileInfo(isoPath); //Blob_RawFile blob = new Blob_RawFile(); //blob.PhysicalPath = fiIso.FullName; //Blobs.Add(blob); //int num_aba = (int)(fiIso.Length / 2048); //track.length_aba = num_aba; //if (fiIso.Length % 2048 != 0) // throw new InvalidOperationException("invalid iso file (size not multiple of 2048)"); ////TODO - handle this with Final Fantasy 9 cd1.iso //var ecmCacheBlob = new ECMCacheBlob(blob); //for (int i = 0; i < num_aba; i++) //{ // Sector_Mode1_2048 sector = new Sector_Mode1_2048(i+150); // sector.Blob = ecmCacheBlob; // sector.Offset = i * 2048; // Sectors.Add(new SectorEntry(sector)); //} //TOC.AnalyzeLengthsFromIndexLengths(); }
void FromIsoPathInternal(string isoPath) { //make a fake cue file to represent this iso file const string isoCueWrapper = @" FILE ""xarp.barp.marp.farp"" BINARY TRACK 01 MODE1/2048 INDEX 01 00:00:00 "; string cueDir = String.Empty; var cue = new Cue(); CueFileResolver["xarp.barp.marp.farp"] = isoPath; cue.LoadFromString(isoCueWrapper); FromCueInternal(cue, cueDir, new CueBinPrefs()); }