示例#1
0
        public MainWindow()
        {
            _frontBuffer = new uint[256 * 240];
            _backBuffer  = new uint[256 * 240];
            _nesSystem   = new NesSystem(new HostGraphics(this));

            this.InitializeComponent();
            this.AttachDevTools();
            Renderer.DrawFps = true;
            //Renderer.DrawDirtyRects = Renderer.DrawFps = true;
        }
示例#2
0
        public MainWindow()
        {
            _frontBuffer = new uint[256 * 240];
            _backBuffer  = new uint[256 * 240];
            _nesSystem   = new NesSystem(new HostGraphics(this));

            this.InitializeComponent();
            this.AttachDevTools();
            Renderer.DrawFps = true;
            //Renderer.DrawDirtyRects = Renderer.DrawFps = true;

            _disposable = Observable.FromEventPattern(h => this.Closed += h, h => this.Closed -= h).Subscribe(_ => _nesSystem.Dispose());
        }
示例#3
0
        public void Initialize(IEventAggregator eventAggregator)
        {
            this.eventAggregator = eventAggregator;

            myCartridge = new Cart();
            my6502 = new Cpu6502(this, systemBus);
            myMapper = new Mappers(this, ref myCartridge, systemBus);
            myPPU = new PictureProcessingUnit(this, systemBus);
            orchestrator = new SystemOrchestration(myAPU, myPPU, systemBus, my6502, this);

            scratchRam = new byte[4][];
            scratchRam[0] = new byte[0x800];
            scratchRam[1] = new byte[0x800];
            scratchRam[2] = new byte[0x800];
            scratchRam[3] = new byte[0x800];
            saveRam = new byte[0x2000];

            isSaveRAMReadonly = false;
            isDebugging = false;
            isQuitting = false;
            isPaused = false;
            hasQuit = false;
            //fix_bgchange = false;
            //fix_spritehit = false;
            fix_scrolloffset1 = false;
            fix_scrolloffset2 = false;
            fix_scrolloffset3 = false;

            MainCore.Settings = new Settings();
            //Palette
            this.myPPU.LoadPalette(MainCore.Settings.PalettePath);
            //sound
            this.myAPU.DMCEnabled = MainCore.Settings.DMCEnabled;
            this.myAPU.NoiseEnabled = MainCore.Settings.NoiseEnabled;
            this.myAPU.Square1Enabled = MainCore.Settings.SQR1enabled;
            this.myAPU.Square2Enabled = MainCore.Settings.SQR2enabled;
            this.myAPU.TriangleEnabled = MainCore.Settings.TRIenabled;

            //region
            this.CurrentSystem = MainCore.Settings.NesRegion;

            this.SpeedThrottling = MainCore.Settings.SpeedThrottling;

            this.isPaused = false;
        }
示例#4
0
        /// <summary>
        /// Load settings
        /// </summary>
        public void Load()
        {
            try
            {
                if (File.Exists(MainCore.ApplicationStartupDirectory + "\\Settings.xml") == true)
                {
                    XmlReader XMLread = XmlReader.Create(MainCore.ApplicationStartupDirectory + "\\Settings.xml");
                    XMLread.Read();//Reads the XML definition <XML>
                    XMLread.Read();//Reads the header
                    //check the header
                    if (XMLread.Name == "MyNesSettings")
                    {
                        //check the version
                        if (XMLread.HasAttributes == true)
                        {
                            XMLread.MoveToAttribute("Version");
                            if (XMLread.Value == MainCore.AssemblyVersion)
                            {
                                _Recents = new List<string>();
                                XMLread.Read();//Read the window lable
                                XMLread.Read();//Read the Location lable
                                XMLread.MoveToAttribute("x");
                                _WindowX = Convert.ToInt32(XMLread.Value);
                                XMLread.MoveToAttribute("y");
                                _WindowY = Convert.ToInt32(XMLread.Value);
                                XMLread.Read();//Read the Size lable
                                XMLread.MoveToAttribute("w");
                                _WindowW = Convert.ToInt32(XMLread.Value);
                                XMLread.MoveToAttribute("h");
                                _WindowH = Convert.ToInt32(XMLread.Value);
                                while (XMLread.Read())
                                {
                                    if (XMLread.Name == "DrawMode")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _DrawMode = XMLread.Value.ToString();
                                    }
                                    if (XMLread.Name == "StatesFolder")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _StatesFolder = XMLread.Value.ToString();
                                    }
                                    if (XMLread.Name == "ShowDebugger")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _ShowDebugger = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "ShowBrowser")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _ShowBrowser = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "SpeedThrottling")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _SpeedThrottling = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "System")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _System = (NesSystem)Enum.Parse(typeof(NesSystem), XMLread.Value);
                                    }
                                    if (XMLread.Name == "SoundEnabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _SoundEnabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "NoiseEnabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _NoiseEnabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "TRIenabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _TRIenabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "SQR2enabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _SQR2enabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "SQR1enabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _SQR1enabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "DMCEnabled")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _DMCEnabled = Convert.ToBoolean(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "MasterVolume")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _MasterVolume = Convert.ToInt32(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "PalettePath")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _PalettePath = XMLread.Value.ToString();
                                    }
                                    if (XMLread.Name == "ScreenshotFormat")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _ScreenshotFormat = XMLread.Value.ToString();
                                    }
                                    if (XMLread.Name == "ScreenShotsFolder")
                                    {
                                        XMLread.MoveToAttribute("Val");
                                        _ScreenShotsFolder = XMLread.Value.ToString();
                                    }
                                    if (XMLread.Name == "Rec")
                                    {
                                        XMLread.MoveToAttribute("pat");
                                        _Recents.Add(XMLread.Value.ToString());
                                    }
                                    if (XMLread.Name == "Player1_Down")
                                    {
                                        XMLread.MoveToAttribute("Down");
                                        _Player1_Down = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_Up")
                                    {
                                        XMLread.MoveToAttribute("Up");
                                        _Player1_Up = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_Right")
                                    {
                                        XMLread.MoveToAttribute("Right");
                                        _Player1_Right = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_Left")
                                    {
                                        XMLread.MoveToAttribute("Left");
                                        _Player1_Left = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_Select")
                                    {
                                        XMLread.MoveToAttribute("Select");
                                        _Player1_Select = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_Start")
                                    {
                                        XMLread.MoveToAttribute("Start");
                                        _Player1_Start = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_B")
                                    {
                                        XMLread.MoveToAttribute("B");
                                        _Player1_B = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player1_A")
                                    {
                                        XMLread.MoveToAttribute("A");
                                        _Player1_A = XMLread.Value;
                                    }

                                    if (XMLread.Name == "Player2_Down")
                                    {
                                        XMLread.MoveToAttribute("Down");
                                        _Player2_Down = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_Up")
                                    {
                                        XMLread.MoveToAttribute("Up");
                                        _Player2_Up = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_Right")
                                    {
                                        XMLread.MoveToAttribute("Right");
                                        _Player2_Right = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_Left")
                                    {
                                        XMLread.MoveToAttribute("Left");
                                        _Player2_Left = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_Select")
                                    {
                                        XMLread.MoveToAttribute("Select");
                                        _Player2_Select = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_Start")
                                    {
                                        XMLread.MoveToAttribute("Start");
                                        _Player2_Start = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_B")
                                    {
                                        XMLread.MoveToAttribute("B");
                                        _Player2_B = XMLread.Value;
                                    }
                                    if (XMLread.Name == "Player2_A")
                                    {
                                        XMLread.MoveToAttribute("A");
                                        _Player2_A = XMLread.Value;
                                    }
                                }
                            }
                        }
                    }
                    XMLread.Close();
                }
            }
            catch (Exception EX) { MainCore.HandleException(EX); }
        }