/// <summary> /// Setup the debugger after an instance has been started. /// </summary> public void OnInstanceStarted() { this.Emulator.AttachDebugger(); IEmulationInstance emu = this.Emulator.CurrentInstance; List <IHook> hooks = new List <IHook>(); foreach (IComponentInstance instance in emu.Components) { IDebuggable debuggable = instance as IDebuggable; if (debuggable == null) { continue; } if (debuggable.SupportsDebugging == false) { Debug.WriteLine(string.Format("Debugger: {0} does not support debugging", instance.Factory.Name)); continue; } debuggable.EnableDebugging(); hooks.Add(debuggable.DebugHook); if (debuggable.DebugHook is IBiosHook) { this.BiosHook = ( IBiosHook )debuggable.DebugHook; } else if (debuggable.DebugHook is ICpuHook) { this.CpuHook = ( ICpuHook )debuggable.DebugHook; } else if (debuggable.DebugHook is IVideoHook) { this.VideoHook = ( IVideoHook )debuggable.DebugHook; } } _hooks = hooks.ToArray(); this.Controller = emu.Cpu.DebugController; if (_isAttached == false) { return; } _client.OnStarted(emu.Bios.Game, emu.Bios.BootStream); }