private void OpenROM() { // Displays an OpenFileDialog so the user can select a Cursor. OpenFileDialog OpenROM = OFD(); OpenROM.Filter = "ROM Files|*.z64;*.rom;*.v64;*.n64"; OpenROM.Title = "Select a SM64 ROM File"; if (OpenROM.ShowDialog() == System.Windows.Forms.DialogResult.OK) { bool isSM64ROM = false; using (FileStream fs = new FileStream(OpenROM.FileName, FileMode.Open, FileAccess.Read)) { byte[] Header = new byte[0x40]; fs.Read(Header, 0, 0x40); //Load header into bytearray if (Header[0x3c] == 0x53 && Header[0x3d] == 0x4D && Header[0x3e] == 0x45 && Header[0x3f] == 0) { isSM64ROM = true; //Check if header is correct } fs.Close(); } if (isSM64ROM) { ROMManager.LoadROM(OpenROM.FileName, ClientRectangle, RenderPanel, Width, Height); SaveROMAs.Enabled = true; SaveROMAs.Enabled = true; currentROMPath = OpenROM.FileName; LevelComboBox.Enabled = true; String[] LevelList = LevelScripts.getLevelList(); LevelComboBox.Items.Clear(); for (int i = 0; i < LevelList.Length; i++) { LevelComboBox.Items.Add(LevelList[i]); } LevelComboBox.SelectedIndex = 12; ControlPanel.Visible = true; ViewMenu.Visible = true; } else { MessageBox.Show("File is not a SM64 US ROM! Please try again.", "Invalid File!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }