コード例 #1
0
        private void BuildChr(string projectFolder, AsmProject project, NesCartridge cartridge)
        {
            var outputDirectory = Path.Combine(projectFolder, cartridge.ChrBuildPath);

            if (!Directory.Exists(outputDirectory))
            {
                Directory.CreateDirectory(outputDirectory);
            }

            var chrFilePath = string.Format(@"{0}\{1}", outputDirectory, cartridge.ChrFile);

            using (var chrFile = File.Create(chrFilePath))
            {
                foreach (var bank in cartridge.ChrBanks)
                {
                    foreach (var source in bank.Sources)
                    {
                        if (!(source.Pipeline is ChrPipeline))
                        {
                            continue;
                        }

                        using (var read = File.OpenRead(((ChrPipeline)source.Pipeline).ChrOutput))
                        {
                            var bufferSize = (int)read.Length;
                            var chrData    = new byte[bufferSize];
                            read.Read(chrData, 0, bufferSize);
                            chrFile.Write(chrData, 0, bufferSize);
                        }
                    }
                    // TODO: Confirm bank size (8KB)
                }
                chrFile.Close();
            }
        }
コード例 #2
0
ファイル: Mapper.cs プロジェクト: Theswweet/PSV-FC
    bool timer_zero_pulse; //the single pulse timer

    #endregion Fields

    #region Constructors

    public Mapper(NesEngine theEngine, ref NesCartridge theCartridge)
    {
        myEngine = theEngine;
        mapperCartridge = theCartridge;
        current_prg_rom_page = new uint[8];
        current_chr_rom_page = new uint[8];
        timer_irq_enabled = false;
    }
コード例 #3
0
        public ConfigurationSettings(NesCartridge configuration, AsmProject project)
        {
            InitializeComponent();

            Project = project;
            ConfigurationName.Text        = configuration.Name;
            OutputFile.Text               = configuration.Filename;
            GenerateMapFile.Checked       = configuration.MapFile != null;
            ConfigurationFile.Text        = configuration.LinkerConfigFile;
            CalculateSnesChecksum.Checked = configuration.CalculateChecksum;
            Symbols.Text = string.Join(Environment.NewLine, configuration.Symbols);
        }
コード例 #4
0
        private void okButton_Click(object sender, EventArgs e)
        {
            var configurationName = ConfigurationSettings.ConfigurationName.Text;

            if (ConfigurationSettings.Project.BuildConfigurations.Any(c => c.Name == configurationName))
            {
                MessageBox.Show(string.Format("A build configuration with the name '{0}' already exists.", configurationName));
                return;
            }

            Configuration = new NesCartridge();
            if (ConfigurationSettings.SetConfigurationSettings(Configuration))
            {
                DialogResult = DialogResult.OK;
                Close();
            }
        }
コード例 #5
0
ファイル: NESEmulator.cs プロジェクト: unimator/NNNes
        private void btnLoadRom_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            using (var stream = openFileDialog.OpenFile())
                using (var memoryStream = new MemoryStream())
                {
                    stream.CopyTo(memoryStream);
                    var bytes = memoryStream.ToArray();
                    _nesCartridge = new NesCartridge(bytes);
                    chrRomControl.NesCartridge = _nesCartridge;
                    txtRomTitle.Text           = openFileDialog.SafeFileName;
                    _nes.SetCartridge(_nesCartridge);
                }

            _nes.Reset();
            cpuControl.Enabled = true;
            cpuControl.Disassemble();
            cpuControl.UpdateState();
        }
コード例 #6
0
        public bool SetConfigurationSettings(NesCartridge configuration)
        {
            if (!IsValid())
            {
                return(false);
            }

            var outputFile = OutputFile.Text.Replace('\\', '/');
            var buildPath  = Path.GetDirectoryName(outputFile);

            if (string.IsNullOrEmpty(buildPath))
            {
                buildPath = "";
            }
            else
            {
                buildPath = buildPath.Replace('\\', '/') + "/";
            }

            configuration.Name             = ConfigurationName.Text;
            configuration.Filename         = outputFile;
            configuration.DebugFile        = buildPath + Path.GetFileNameWithoutExtension(outputFile) + ".dbg";
            configuration.LinkerConfigFile = ConfigurationFile.Text;
            configuration.BuildPath        = buildPath + "obj";
            configuration.MapFile          = GenerateMapFile.Checked
                                ? buildPath + Path.GetFileNameWithoutExtension(outputFile) + ".map.txt"
                                : null;
            configuration.Symbols      = GetSymbols().ToList();
            configuration.ChrBuildPath = null;
            configuration.ChrFile      = null;
            configuration.PrgFile      = null;
            configuration.PrgBuildPath = null;

            configuration.CalculateChecksum = CalculateSnesChecksum.Checked;

            return(true);
        }
コード例 #7
0
 public ConfigurationSelection(NesCartridge configuration)
 {
     Configuration = configuration;
 }