Esempio n. 1
0
        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);
            //    }
            //}
        }
Esempio n. 2
0
 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.");
     }
 }
Esempio n. 3
0
        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";
            }
        }
Esempio n. 4
0
        /// <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();
            }
        }