public SoundRecordingViewModel(IGameBoy gameboy) { _gameboy = gameboy; _apu = gameboy.APU; _gameboy.StopRequested += _gameboy_StopRequested; }
public APUViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _gameBoy = gameBoy; _dispatcher = dispatcher; _gameBoy.FrameCompleted += OnFrameCompleted; _spectrogram = new WriteableBitmap(_numberOfFramesPerImage, _fftSize, 96, 96, PixelFormats.Bgr32, null); }
public MemoryImageViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _gameBoy = gameBoy; _dispatcher = dispatcher; _gameBoy.FrameCompleted += OnFrameCompleted; _memoryImage = new WriteableBitmap(256, 256, 96, 96, PixelFormats.Gray8, null); }
public void AssertAddUshort(ushort value1, ushort value2, byte registerF, ushort expectedSum, byte expectedF) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.F = registerF; Assert.Equal(expectedSum, _gameboy.Processor.Add(value1, value2)); Assert.Equal(expectedF, _gameboy.Processor.Registers.F); }
public AudioManager(IGameBoy gameboy) { _gameboy = gameboy; gameboy.FrameCompleted += gameBoy_FrameCompleted; gameboy.PauseRequested += GameBoy_PauseRequested; gameboy.StopRequested += GameBoy_StopRequested; ReloadAPU(); }
public DissasembleViewModel(BreakpointsViewModel breakpoints, IGameBoy gameBoy) { _breakpoints = breakpoints; _gameBoy = gameBoy; _cpu = gameBoy.CPU; _disassembler = gameBoy.Disassembler; _breakpoints.BreakpointChanged += _breakpoints_BreakpointChanged; }
public CPUViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _gameBoy = gameBoy; _cpu = _gameBoy.CPU; _dispatcher = dispatcher; //_gameBoy.Display.FrameCompleted += OnFrameCompleted; //_gameBoy.StepCompleted += OnFrameCompleted; }
public void AssertAnd(byte value, byte registerA, byte registerF, byte expectedSum, byte expectedF) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.A = registerA; _gameboy.Processor.Registers.F = registerF; Assert.Equal(expectedSum, _gameboy.Processor.And(value)); Assert.Equal(expectedF, _gameboy.Processor.Registers.F); }
public Memory(IGameBoy device) { _device = device; _internalRam = new byte[0x2000]; _internalVideoRam = new byte[0x2000]; _oamMemory = new byte[0x00A0]; _ioMemory = new byte[0x004C]; _highInternalRam = new byte[0x007F]; }
public BreakpointViewModel(IGameBoy gameboy, IInstruction inst) { _gameboy = gameboy; _instruction = inst; OriginalAddress = inst.Address; Address = "0x" + inst.Address.ToString("x2"); Name = inst.Name; }
public InstructionHistogramViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _gameBoy = gameBoy; _dispatcher = dispatcher; _gameBoy.FrameCompleted += OnFrameCompleted; _cpu = _gameBoy.CPU; _histogram = new WriteableBitmap(16, 16, 96, 96, PixelFormats.Gray16, null); _cbHistogram = new WriteableBitmap(16, 16, 96, 96, PixelFormats.Gray16, null); _maxHistogramValue = 65535; }
public void AssertFlags(byte F, byte expectedZ, byte expectedN, byte expectedH, byte expectedC) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.F = F; Assert.Equal(_gameboy.Processor.Registers.ZFlag, expectedZ); Assert.Equal(_gameboy.Processor.Registers.NFlag, expectedN); Assert.Equal(_gameboy.Processor.Registers.HFlag, expectedH); Assert.Equal(_gameboy.Processor.Registers.CFlag, expectedC); }
public DisplayTimingViewModel(IGameBoy gameboy, IDisplay display, IDispatcher dispatcher) { _gameBoy = gameboy; _display = display; //_gameBoy.FrameCompleted += OnFrameCompleted; _dispatcher = dispatcher; var disDef = _display.GetDisplayDefinition(); _displayTiming = new WriteableBitmap(disDef.TimingPixelCountX, disDef.TimingPixelCountY, 96, 96, PixelFormats.Bgra32, null); }
public InterruptManagerViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _dispatcher = dispatcher; _gameBoy = gameBoy; //_gameBoy.FrameCompleted += OnFrameCompleted; InterruptList.Add(new InterruptViewModel("Vertical Blank", Interrupts.VerticalBlanking, _gameBoy)); InterruptList.Add(new InterruptViewModel("Timer Overflow", Interrupts.TimerOverflow, _gameBoy)); InterruptList.Add(new InterruptViewModel("LCD Status", Interrupts.LCDCStatus, _gameBoy)); InterruptList.Add(new InterruptViewModel("Button Pressed", Interrupts.P10to13TerminalNegativeEdge, _gameBoy)); InterruptList.Add(new InterruptViewModel("Serial Transfer Completed", Interrupts.SerialIOTransferCompleted, _gameBoy)); }
public IORegistersManagerViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _dispatcher = dispatcher; _gameBoy = gameBoy; _gameBoy.StepCompleted += _gameBoy_StepCompleted; _gameBoy.PauseRequested += _gameBoy_PauseRequested; MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF00: P1", MMR.P1, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF01: SB", MMR.SB, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF02: SC", MMR.SC, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF04: DIV", MMR.DIV, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF05: TIMA", MMR.TIMA, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF06: TMA", MMR.TMA, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF07: TAC", MMR.TAC, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FF0F: IF", MMR.IF, _gameBoy)); MiscRegisters.Add(new MemoryMappedRegisterViewModel("FFFF: IE", MMR.IE, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF40: LCDC", MMR.LCDC, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF41: STAT", MMR.STAT, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF42: SCY", MMR.SCY, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF43: SCX", MMR.SCX, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF44: LY", MMR.LY, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF45: LYC", MMR.LYC, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF47: BGP", MMR.BGP, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF48: OBP0", MMR.OBP0, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF49: OBP1", MMR.OBP1, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF4A: WY", MMR.WY, _gameBoy)); DisplayRegisters.Add(new MemoryMappedRegisterViewModel("FF4B: WX", MMR.WX, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF10: NR10", MMR.NR10, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF11: NR11", MMR.NR11, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF12: NR12", MMR.NR12, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF13: NR13", MMR.NR13, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF14: NR14", MMR.NR14, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF16: NR21", MMR.NR21, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF17: NR22", MMR.NR22, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF18: NR23", MMR.NR23, _gameBoy)); SoundRegistersSet1.Add(new MemoryMappedRegisterViewModel("FF19: NR24", MMR.NR24, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF1A: NR30", MMR.NR30, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF1B: NR31", MMR.NR31, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF1C: NR32", MMR.NR32, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF1D: NR33", MMR.NR33, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF1E: NR34", MMR.NR34, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF20: NR41", MMR.NR41, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF21: NR42", MMR.NR42, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF22: NR43", MMR.NR43, _gameBoy)); SoundRegistersSet2.Add(new MemoryMappedRegisterViewModel("FF23: NR44", MMR.NR44, _gameBoy)); SoundRegistersSet3.Add(new MemoryMappedRegisterViewModel("FF24: NR50", MMR.NR50, _gameBoy)); SoundRegistersSet3.Add(new MemoryMappedRegisterViewModel("FF25: NR51", MMR.NR51, _gameBoy)); SoundRegistersSet3.Add(new MemoryMappedRegisterViewModel("FF26: NR52", MMR.NR52, _gameBoy)); }
public SpriteLayerViewModel(IGameBoy gameboy, IDisplay display, IDispatcher dispatcher) { _gameBoy = gameboy; _display = display; //_gameBoy.FrameCompleted += OnFrameCompleted; _dispatcher = dispatcher; var disDef = _display.GetDisplayDefinition(); _spriteLayer = new WriteableBitmap(disDef.ScreenPixelCountX, disDef.ScreenPixelCountY, 96, 96, PixelFormats.Bgra32, null); }
public MainWindow() { InitializeComponent(); _gameBoy = new GameBoy(); _keyboardHandler = new KeyboardHandler(); _mainWindowViewModel = new GameBoyViewModel(_gameBoy, new DispatcherAdapter(this), new WindowAdapter(this), new OpenFileDialogAdapterFactory(), _keyboardHandler); this.DataContext = _mainWindowViewModel; }
public void AssertInitialize() { _gameboy = new GameBoy(); _gameboy.Processor.Registers.Initialize(); Assert.Equal(0x01B0, _gameboy.Processor.Registers.AF); Assert.Equal(0x0013, _gameboy.Processor.Registers.BC); Assert.Equal(0x00D8, _gameboy.Processor.Registers.DE); Assert.Equal(0x014D, _gameboy.Processor.Registers.HL); Assert.Equal(0x0100, _gameboy.Processor.Registers.PC); Assert.Equal(0xFFFE, _gameboy.Processor.Registers.SP); Assert.True(_gameboy.Processor.Registers.IME); }
public GameBoyGamePadViewModel(IGameBoy gameBoy, IDispatcher dispatcher) { _dispatcher = dispatcher; _gameBoy = gameBoy; _display = _gameBoy.Display; _gameBoy.FrameCompleted += OnFrameCompleted; VideoSpace.DisplayDefinition disDef = _display.GetDisplayDefinition(); _screen = new WriteableBitmap(disDef.ScreenPixelCountX, disDef.ScreenPixelCountY, 96, 96, System.Windows.Media.PixelFormats.Bgra32, null); _frame = new uint[disDef.ScreenPixelCountX * disDef.ScreenPixelCountY]; }
public void AssertRegisters16to8(ushort value, byte expected1, byte expected2) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.AF = value; _gameboy.Processor.Registers.BC = value; _gameboy.Processor.Registers.DE = value; _gameboy.Processor.Registers.HL = value; Assert.Equal(expected1 * 0x100 | expected2, _gameboy.Processor.Registers.AF); Assert.Equal(expected1 * 0x100 | expected2, _gameboy.Processor.Registers.BC); Assert.Equal(expected1 * 0x100 | expected2, _gameboy.Processor.Registers.DE); Assert.Equal(expected1 * 0x100 | expected2, _gameboy.Processor.Registers.HL); }
public SpritesViewModel(IGameBoy gameboy, IDisplay display, IMemory memory, IDispatcher dispatcher) { _gameBoy = gameboy; _display = display; //_gameBoy.FrameCompleted += OnFrameCompleted; _memory = memory; _dispatcher = dispatcher; for (int i = 0; i < 40; i++) { Sprites.Add(new SpriteViewModel()); } SelectedSprite = Sprites.First(); }
public DisplayViewModel(IGameBoy gameboy, IDisplay display, IMemory memory, IDispatcher dispatcher) { _gameBoy = gameboy; _display = display; _gameBoy.FrameCompleted += OnFrameCompleted; _memory = memory; _dispatcher = dispatcher; _background = new BackgroundViewModel(gameboy, display, dispatcher); _tileMap = new TileMapViewModel(gameboy, display, dispatcher); _window = new WindowViewModel(gameboy, display, dispatcher); _sprites = new SpritesViewModel(gameboy, display, memory, dispatcher); _spriteLayer = new SpriteLayerViewModel(gameboy, display, dispatcher); _displayTiming = new DisplayTimingViewModel(gameboy, display, dispatcher); }
public GameBoyContollerViewModel(IGameBoy gameBoy, IOpenFileDialogFactory fileDialogFactory, BreakpointsViewModel breakpoints) { _gameBoy = gameBoy; _fileDialog = fileDialogFactory.Create(); _fileDialog.OnFileOpened += OnFileOpened; audioManager = new AudioManager(gameBoy); _breakpoints = breakpoints; _gameBoy = gameBoy; _cpu = gameBoy.CPU; _disassembler = gameBoy.Disassembler; _breakpoints.BreakpointChanged += _breakpoints_BreakpointChanged; }
public void AssertRegisters16(ushort value, ushort expected) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.AF = value; _gameboy.Processor.Registers.BC = value; _gameboy.Processor.Registers.DE = value; _gameboy.Processor.Registers.HL = value; _gameboy.Processor.Registers.SP = value; _gameboy.Processor.Registers.PC = value; Assert.Equal(_gameboy.Processor.Registers.AF, expected); Assert.Equal(_gameboy.Processor.Registers.BC, expected); Assert.Equal(_gameboy.Processor.Registers.DE, expected); Assert.Equal(_gameboy.Processor.Registers.HL, expected); Assert.Equal(_gameboy.Processor.Registers.SP, expected); Assert.Equal(_gameboy.Processor.Registers.PC, expected); }
public GameBoyViewModel(IGameBoy gameBoy, IDispatcher dispatcher, IWindow window, IOpenFileDialogFactory fileDialogFactory, IKeyboardHandler keyboardHandler) { _gameBoy = gameBoy; _dispatcher = dispatcher; _window = window; _keyboardHandler = keyboardHandler; _keyboardHandler.KeyDown += OnKeyDown; _keyboardHandler.KeyUp += OnKeyUp; _window.OnClosing += HandleClosing; _buttonMapping = new ButtonMapping(); _memory = new MemoryViewModel(_gameBoy.Memory, "Memory View"); _cpu = new CPUViewModel(_gameBoy, _dispatcher); // TODO(aaecheve): Should this be another function handling this? _gameBoy.CPU.BreakpointFound += BreakpointHandler; _gameBoy.CPU.InterruptHappened += InterruptHandler; _gameBoy.ErrorEvent += _gameBoy_ErrorEvent; _interrupt = new InterruptManagerViewModel(_gameBoy, _dispatcher); _ioRegisters = new IORegistersManagerViewModel(_gameBoy, _dispatcher); _soundChannelInternals = new SoundChannelInternalsViewModel(_gameBoy); _display = new DisplayViewModel(_gameBoy, _gameBoy.Display, _gameBoy.Memory, _dispatcher); _gameBoyGamePad = new GameBoyGamePadViewModel(_gameBoy, _dispatcher); _breakpoints = new BreakpointsViewModel(_gameBoy); _dissasemble = new DissasembleViewModel(_breakpoints, _gameBoy); _instructionHistogram = new InstructionHistogramViewModel(_gameBoy, _dispatcher); _apu = new APUViewModel(_gameBoy, _dispatcher); _memoryImage = new MemoryImageViewModel(_gameBoy, _dispatcher); _soundRecording = new SoundRecordingViewModel(_gameBoy); _controls = new ControlsViewModel(this, _buttonMapping); // Gameboy Controller events _gameBoyController = new GameBoyContollerViewModel(_gameBoy, fileDialogFactory, _breakpoints); _gameBoyController.OnFileLoaded += FileLoadedHandler; _gameBoyController.OnStep += StepHandler; _gameBoyController.OnRun += RunHandler; _gameBoyController.OnPause += PauseHandler; }
public void AssertRegisters8to16(byte value1, byte value2, ushort expected) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.A = value1; _gameboy.Processor.Registers.F = value2; _gameboy.Processor.Registers.B = value1; _gameboy.Processor.Registers.C = value2; _gameboy.Processor.Registers.D = value1; _gameboy.Processor.Registers.E = value2; _gameboy.Processor.Registers.H = value1; _gameboy.Processor.Registers.L = value2; Assert.Equal(expected, _gameboy.Processor.Registers.A * 0x100 | _gameboy.Processor.Registers.F); Assert.Equal(expected, _gameboy.Processor.Registers.B * 0x100 | _gameboy.Processor.Registers.C); Assert.Equal(expected, _gameboy.Processor.Registers.D * 0x100 | _gameboy.Processor.Registers.E); Assert.Equal(expected, _gameboy.Processor.Registers.H * 0x100 | _gameboy.Processor.Registers.L); }
public void AssertRegisters8(byte value, byte expected) { _gameboy = new GameBoy(); _gameboy.Processor.Registers.A = value; _gameboy.Processor.Registers.B = value; _gameboy.Processor.Registers.C = value; _gameboy.Processor.Registers.D = value; _gameboy.Processor.Registers.E = value; _gameboy.Processor.Registers.H = value; _gameboy.Processor.Registers.L = value; _gameboy.Processor.Registers.F = value; Assert.Equal(_gameboy.Processor.Registers.A, expected); Assert.Equal(_gameboy.Processor.Registers.B, expected); Assert.Equal(_gameboy.Processor.Registers.C, expected); Assert.Equal(_gameboy.Processor.Registers.D, expected); Assert.Equal(_gameboy.Processor.Registers.E, expected); Assert.Equal(_gameboy.Processor.Registers.H, expected); Assert.Equal(_gameboy.Processor.Registers.L, expected); Assert.Equal(_gameboy.Processor.Registers.F, expected); }
public Processor(IGameBoy device) { _device = device; Registers = new Registers(); }
public MemoryMappedRegisterViewModel(string name, MMR register, IGameBoy gameBoy) { _name = name; _register = register; _gameBoy = gameBoy; }
public InterruptViewModel(string name, Interrupts interrupt, IGameBoy gameBoy) { _name = name; _interrupt = interrupt; _gameBoy = gameBoy; }
public SharpBoyBusinessLogic(IGameBoy device) { Device = device; }
public BreakpointsViewModel(IGameBoy gameboy) { _gameboy = gameboy; _gameboy.CPU.BreakpointFound += CPU_BreakpointFound; }
internal SoundChannelInternalsViewModel(IGameBoy gameboy) { _gameboy = gameboy; }