private void AddButtonClick(object sender, EventArgs e) { using (OpenFileDialog AddRom = new OpenFileDialog()) { AddRom.Filter = "All GB/C ROMs|*.gb;*.gbc"; AddRom.Multiselect = true; if (AddRom.ShowDialog() == DialogResult.OK) { List <ROM> ROMsToAdd = new List <ROM>(); foreach (String BinaryFile in AddRom.FileNames) { if (!File.Exists(BinaryFile)) { continue; } using (FileStream FileToAdd = new FileStream(BinaryFile, FileMode.Open, FileAccess.Read)) { using (MemoryStream Mem = new MemoryStream()) { FileToAdd.CopyTo(Mem); ROMsToAdd.Add(Processing.ParseROM(Mem, BinaryFile)); } } } foreach (ROM R in ROMsToAdd) { TitleEntry ROMTitle = new TitleEntry(R.ASCIITitle); if (ROMTitle.ShowDialog() == DialogResult.OK) { R.Title = ROMTitle.Title; } else { return; } AddROMToInterface(R); } } } }
private void ImportButtonClick(object sender, EventArgs e) { using (OpenFileDialog ImportMenu = new OpenFileDialog()) { ImportMenu.Filter = "1024kB GBM binary|*.gb;*.gbc;*.bin"; ImportMenu.Multiselect = true; if (ImportMenu.ShowDialog() == DialogResult.OK) { List <ROM> ROMsToAdd = new List <ROM>(); foreach (String BinaryFile in ImportMenu.FileNames) { if (!File.Exists(BinaryFile)) { continue; } if (new FileInfo(BinaryFile).Length / 1024 != 1024) { MessageBox.Show(String.Format("GBM binary {1}{0}{1} has to be 1024kByte in size!", Path.GetFileName(BinaryFile), '"'), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); continue; } ROMsToAdd.AddRange(Processing.ParseGBMBinary(BinaryFile)); } foreach (ROM R in ROMsToAdd) { TitleEntry ROMTitle = new TitleEntry(R.ASCIITitle); if (ROMTitle.ShowDialog() == DialogResult.OK) { R.Title = ROMTitle.Title; } else { return; } AddROMToInterface(R); } } } }
private void MAPButtonClick(object sender, EventArgs e) { using (OpenFileDialog GenerateFor = new OpenFileDialog()) { GenerateFor.Filter = "All GB/C ROMs|*.gb;*.gbc"; if (GenerateFor.ShowDialog() == DialogResult.OK && File.Exists(GenerateFor.FileName)) { if ((new FileInfo(GenerateFor.FileName).Length / 1024) > 1024) { MessageBox.Show("ROM size exceeds the maximum of 1024kByte.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } ROM ROMToProcess = new ROM(); using (FileStream FileToAdd = new FileStream(GenerateFor.FileName, FileMode.Open, FileAccess.Read)) { using (MemoryStream Mem = new MemoryStream()) { FileToAdd.CopyTo(Mem); ROMToProcess = Processing.ParseROM(Mem, GenerateFor.FileName); } } ShowRAMSizeOverflowWarning(ROMToProcess); Byte[] MAPBytes = Processing.GenerateStandaloneMAPForROM(ROMToProcess); if (!CheckFolderPermissions(Path.GetDirectoryName(ROMToProcess.File))) { return; } String FileToCreate = Path.GetDirectoryName(ROMToProcess.File) + @"\" + Path.GetFileNameWithoutExtension(ROMToProcess.File) + ".map"; File.WriteAllBytes(FileToCreate, MAPBytes); MessageBox.Show("Created:" + Environment.NewLine + FileToCreate); } } }