private void LoadRom() { OpenFileDialog ofd = new OpenFileDialog { Filter = "GBA Save Files|*.sav|All Files|*.*", Title = "Select TMC Save File" }; if (ofd.ShowDialog() != DialogResult.OK) { return; } try { SRAM_ = new SRAM(ofd.FileName); } catch (Exception e) { Console.WriteLine(e); throw; } /* * if (SRAM.Instance.version.Equals(RegionVersion.None)) * { * MessageBox.Show("Invalid TMC save file. Please open a valid save.", "Invalid save", MessageBoxButtons.OK); * statusText.Text = "Unable to determine save file."; * return; * } */ currentSaveFile_ = SRAM_.GetSaveFile(0); LoadData(); }
public NESMemoryMapSlim(PPURegisters ppuRegisters, InputHandler inputHandler) : base() { this.ppuRegisters = ppuRegisters; this.inputHandler = inputHandler; this.sram = new SRAM(MemoryRanges.SRAM, "SRAM"); this.stack = new CPU.MOS6502.Stack(MemoryRanges.Stack, "Stack"); this.prgROMLowerBank = new ExternalFacade(this, MemoryRanges.ProgramRomLowerBank, Constants.ProgramRomLowerBank); this.prgROMUpperBank = new ExternalFacade(this, MemoryRanges.ProgramRomUpperBank, Constants.ProgramRomUpperBank); this.ppuRegisterLookup = new Dictionary <int, Register8Bit>() { { PPURegisterAddresses.PPUCTRL, ppuRegisters.PPUCTRL }, { PPURegisterAddresses.PPUMASK, ppuRegisters.PPUMASK }, { PPURegisterAddresses.PPUSTATUS, ppuRegisters.PPUSTATUS }, { PPURegisterAddresses.OAMADDR, ppuRegisters.OAMADDR }, { PPURegisterAddresses.OAMDATA, ppuRegisters.OAMDATA }, { PPURegisterAddresses.PPUADDR, ppuRegisters.PPUADDR }, { PPURegisterAddresses.PPUDATA, ppuRegisters.PPUDATA }, { PPURegisterAddresses.OAMDMA, ppuRegisters.OAMDMA } }; this.apuRegisterLookup = new Dictionary <int, Register8Bit>() { { APURegisterAddresses.Pulse1TimerLow, null }, { APURegisterAddresses.Pulse1TimerHigh, null }, { APURegisterAddresses.Pulse2TimerLow, null }, { APURegisterAddresses.Pulse2TimerHigh, null }, { APURegisterAddresses.DirectLoad, null }, { APURegisterAddresses.ChannelStatus, null }, { APURegisterAddresses.TriangleTimerLow, null }, { APURegisterAddresses.TriangleTimerHigh, null }, }; this.inputHandler.ControllerChanged += this.OnControllerChanged; this.ScopeMemoryRanges(); }