private void LoadROMInternal(string path) { var ext = Path.GetExtension(path).ToLower(); if (ext == ".rom") { byte[] rom = File.ReadAllBytes(path); _trainer.WriteMemory(ET3400.Trainer.Trainer.RomAddress, rom, rom.Length); } else if (ext == ".hex") { using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read)) { var romLoader = new RomReader(stream); var data = romLoader.Read(); _trainer.WriteMemory(ET3400.Trainer.Trainer.RomAddress, data, data.Length); } } //var datPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path) + ".dat"); //if (File.Exists(datPath)) //{ // using (var datfile = new FileStream(datPath, FileMode.Open, FileAccess.Read)) // { // var dat = new XmlSerializer(typeof(MemoryMap), new XmlRootAttribute("memorymap")); // var map = (MemoryMap)dat.Deserialize(datfile); // memoryMaps.Add(map); // } //} }
private void loadToolStripMenuItem_Click(object sender, EventArgs e) { if (DialogResult.OK == ofdRom.ShowDialog(this)) { SetStatus("Loading ROM " + ofdRom.FileName + " ..."); Image vM = RomReader.GetRomAsImage(ofdRom.FileName, 2, mCurrentProject.Palette); ucRomViewer1.SetImage(vM, 2); SetStatus("Loading ROM " + ofdRom.FileName + " completed."); } }
private void button1_Click(object sender, EventArgs e) { var tilesetOffset = Convert.ToInt32(textBox1.Text, 16); var paletteOffset = Convert.ToInt32(textBox2.Text, 16); if (Program.GameFilePath != null) { var watch = Stopwatch.StartNew(); Tileset tileset; Palette palette; // Load the sprite and palette using (var gb = new RomReader(File.Open(Program.GameFilePath, FileMode.Open, FileAccess.Read))) { gb.Seek(tilesetOffset); tileset = gb.ReadCompressedTiles4(); gb.Seek(paletteOffset); palette = gb.ReadPalette(16); } // Create a new sprite var sprite = new Sprite(tileset, palette); sprite.Width = 8; // Destroy the existing image if (image != null) { image.Dispose(); image = null; } // Display and display the sprite if (renderer == null) { renderer = new SpriteRenderer(); } pictureBox1.Image = image = renderer.Draw(sprite); // Collect timing information watch.Stop(); label3.Text = watch.Elapsed.TotalSeconds + " s"; } }
/// <summary> /// Main entry point /// </summary> /// <param name="args">Command line parameters</param> static public void Main(string[] args) { try { if (args?.Length != 1) { throw new ArgumentException("Usage: spaceinvaders <rom path>"); } Console.CursorVisible = false; using (Stream rom = RomReader.Read(args[0])) { Processor processor = Processor.Create(); Debugger.Instance.Mode = DebugMode.DisplayState | DebugMode.EnableLogging; processor.Execute(rom); } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadKey(); } }