コード例 #1
0
ファイル: Main.cs プロジェクト: n13i/GB-Memory-Binary-Maker
        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);
                    }
                }
            }
        }
コード例 #2
0
ファイル: Main.cs プロジェクト: n13i/GB-Memory-Binary-Maker
        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);
                    }
                }
            }
        }
コード例 #3
0
ファイル: Main.cs プロジェクト: n13i/GB-Memory-Binary-Maker
        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);
                }
            }
        }