refactor IVideoProvider into a service. uses in mainform and friends are still hacky
This commit is contained in:
parent
8b60e74b87
commit
82fcd0bc5e
|
@ -34,7 +34,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
if (Global.Config.SaveScreenshotWithStates)
|
||||
{
|
||||
var buff = Global.Emulator.VideoProvider.GetVideoBuffer();
|
||||
var buff = Global.Emulator.VideoProvider().GetVideoBuffer();
|
||||
|
||||
// If user wants large screenshots, or screenshot is small enough
|
||||
if (Global.Config.SaveLargeScreenshotWithStates || buff.Length < Global.Config.BigScreenshotSize)
|
||||
|
@ -59,7 +59,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void PopulateFramebuffer(BinaryReader br)
|
||||
{
|
||||
var buff = Global.Emulator.VideoProvider.GetVideoBuffer();
|
||||
var buff = Global.Emulator.VideoProvider().GetVideoBuffer();
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < buff.Length; i++)
|
||||
|
@ -73,7 +73,7 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public static void DumpFramebuffer(BinaryWriter bw)
|
||||
{
|
||||
bw.Write(Global.Emulator.VideoProvider.GetVideoBuffer());
|
||||
bw.Write(Global.Emulator.VideoProvider().GetVideoBuffer());
|
||||
}
|
||||
|
||||
public static bool LoadStateFile(string path, string name)
|
||||
|
@ -143,7 +143,7 @@ namespace BizHawk.Client.Common
|
|||
var args = str.Split(' ');
|
||||
if (args[0] == "Framebuffer")
|
||||
{
|
||||
Global.Emulator.VideoProvider.GetVideoBuffer().ReadFromHex(args[1]);
|
||||
Global.Emulator.VideoProvider().GetVideoBuffer().ReadFromHex(args[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -573,7 +573,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void ScreenshotClientClipboardMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var bb = GlobalWin.DisplayManager.RenderOffscreen(Global.Emulator.VideoProvider, Global.Config.Screenshot_CaptureOSD))
|
||||
using (var bb = GlobalWin.DisplayManager.RenderOffscreen(Global.Emulator.VideoProvider(), Global.Config.Screenshot_CaptureOSD))
|
||||
{
|
||||
bb.Normalize(true);
|
||||
using (var img = bb.ToSysdrawingBitmap())
|
||||
|
|
|
@ -60,7 +60,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (movie.SavestateFramebuffer != null)
|
||||
{
|
||||
var b1 = movie.SavestateFramebuffer;
|
||||
var b2 = Global.Emulator.VideoProvider.GetVideoBuffer();
|
||||
var b2 = Global.Emulator.VideoProvider().GetVideoBuffer();
|
||||
int len = Math.Min(b1.Length, b2.Length);
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
|
|
|
@ -765,18 +765,19 @@ namespace BizHawk.Client.EmuHawk
|
|||
// also handle floats
|
||||
conInput.AcceptNewFloats(Input.Instance.GetFloats().Select(o =>
|
||||
{
|
||||
var video = Global.Emulator.VideoProvider();
|
||||
// hackish
|
||||
if (o.Item1 == "WMouse X")
|
||||
{
|
||||
var P = GlobalWin.DisplayManager.UntransformPoint(new Point((int)o.Item2, 0));
|
||||
float x = P.X / (float)Global.Emulator.VideoProvider.BufferWidth;
|
||||
float x = P.X / (float)video.BufferWidth;
|
||||
return new Tuple<string, float>("WMouse X", x * 20000 - 10000);
|
||||
}
|
||||
|
||||
if (o.Item1 == "WMouse Y")
|
||||
{
|
||||
var P = GlobalWin.DisplayManager.UntransformPoint(new Point(0, (int)o.Item2));
|
||||
float y = P.Y / (float)Global.Emulator.VideoProvider.BufferHeight;
|
||||
float y = P.Y / (float)video.BufferHeight;
|
||||
return new Tuple<string, float>("WMouse Y", y * 20000 - 10000);
|
||||
}
|
||||
|
||||
|
@ -853,7 +854,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// run this entire thing exactly twice, since the first resize may adjust the menu stacking
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
var video = Global.Emulator.VideoProvider;
|
||||
var video = Global.Emulator.VideoProvider();
|
||||
int zoom = Global.Config.TargetZoomFactor;
|
||||
var area = Screen.FromControl(this).WorkingArea;
|
||||
|
||||
|
@ -1708,7 +1709,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private static unsafe BitmapBuffer MakeScreenshotImage()
|
||||
{
|
||||
var bb = new BitmapBuffer(Global.Emulator.VideoProvider.BufferWidth, Global.Emulator.VideoProvider.BufferHeight, Global.Emulator.VideoProvider.GetVideoBuffer());
|
||||
var bb = new BitmapBuffer(Global.Emulator.VideoProvider().BufferWidth, Global.Emulator.VideoProvider().BufferHeight, Global.Emulator.VideoProvider().GetVideoBuffer());
|
||||
bb.DiscardAlpha();
|
||||
return bb;
|
||||
}
|
||||
|
@ -1780,7 +1781,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
private void Render()
|
||||
{
|
||||
//private Size _lastVideoSize = new Size(-1, -1), _lastVirtualSize = new Size(-1, -1);
|
||||
var video = Global.Emulator.VideoProvider;
|
||||
var video = Global.Emulator.VideoProvider();
|
||||
//bool change = false;
|
||||
Size currVideoSize = new Size(video.BufferWidth,video.BufferHeight);
|
||||
Size currVirtualSize = new Size(video.VirtualWidth,video.VirtualWidth);
|
||||
|
@ -1791,7 +1792,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
FrameBufferResized();
|
||||
}
|
||||
|
||||
GlobalWin.DisplayManager.UpdateSource(Global.Emulator.VideoProvider);
|
||||
GlobalWin.DisplayManager.UpdateSource(video);
|
||||
}
|
||||
|
||||
// sends a simulation of a plain alt key keystroke
|
||||
|
@ -2154,7 +2155,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private BitmapBuffer CaptureOSD()
|
||||
{
|
||||
var bb = GlobalWin.DisplayManager.RenderOffscreen(Global.Emulator.VideoProvider,true);
|
||||
var bb = GlobalWin.DisplayManager.RenderOffscreen(Global.Emulator.VideoProvider(), true);
|
||||
bb.Normalize(true);
|
||||
return bb;
|
||||
}
|
||||
|
@ -2915,7 +2916,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
else
|
||||
{
|
||||
aw.SetVideoParameters(Global.Emulator.VideoProvider.BufferWidth, Global.Emulator.VideoProvider.BufferHeight);
|
||||
aw.SetVideoParameters(Global.Emulator.VideoProvider().BufferWidth, Global.Emulator.VideoProvider().BufferHeight);
|
||||
}
|
||||
|
||||
aw.SetAudioParameters(44100, 2, 16);
|
||||
|
@ -3081,7 +3082,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
else
|
||||
{
|
||||
bbin = new BitmapBuffer(Global.Emulator.VideoProvider.BufferWidth, Global.Emulator.VideoProvider.BufferHeight, Global.Emulator.VideoProvider.GetVideoBuffer());
|
||||
bbin = new BitmapBuffer(Global.Emulator.VideoProvider().BufferWidth, Global.Emulator.VideoProvider().BufferHeight, Global.Emulator.VideoProvider().GetVideoBuffer());
|
||||
}
|
||||
|
||||
|
||||
|
@ -3091,7 +3092,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
if (_avwriterpad)
|
||||
{
|
||||
g.Clear(Color.FromArgb(Global.Emulator.VideoProvider.BackgroundColor));
|
||||
g.Clear(Color.FromArgb(Global.Emulator.VideoProvider().BackgroundColor));
|
||||
g.DrawImageUnscaled(bmpin, (bmpout.Width - bmpin.Width) / 2, (bmpout.Height - bmpin.Height) / 2);
|
||||
}
|
||||
else
|
||||
|
@ -3119,7 +3120,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
disposableOutput = (IDisposable)output;
|
||||
}
|
||||
else
|
||||
output = Global.Emulator.VideoProvider;
|
||||
output = Global.Emulator.VideoProvider();
|
||||
}
|
||||
|
||||
_currAviWriter.SetFrame(Global.Emulator.Frame);
|
||||
|
|
|
@ -63,13 +63,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void SetMaxXY()
|
||||
{
|
||||
XNumeric.Maximum = Global.Emulator.VideoProvider.BufferWidth - 12;
|
||||
YNumeric.Maximum = Global.Emulator.VideoProvider.BufferHeight - 12;
|
||||
PositionPanel.Size = new Size(Global.Emulator.VideoProvider.BufferWidth + 2, Global.Emulator.VideoProvider.BufferHeight + 2);
|
||||
var video = BizHawk.Emulation.Common.VideoProviderGlue.VideoProvider(Global.Emulator);
|
||||
XNumeric.Maximum = video.BufferWidth - 12;
|
||||
YNumeric.Maximum = video.BufferHeight - 12;
|
||||
PositionPanel.Size = new Size(video.BufferWidth + 2, video.BufferHeight + 2);
|
||||
|
||||
PositionGroupBox.Size = new Size(
|
||||
Math.Max(Global.Emulator.VideoProvider.BufferWidth, UIHelper.ScaleX(128)) + UIHelper.ScaleX(44),
|
||||
Global.Emulator.VideoProvider.BufferHeight + UIHelper.ScaleY(52));
|
||||
Math.Max(video.BufferWidth, UIHelper.ScaleX(128)) + UIHelper.ScaleX(44),
|
||||
video.BufferHeight + UIHelper.ScaleY(52));
|
||||
}
|
||||
|
||||
private void SetColorBox()
|
||||
|
|
|
@ -105,7 +105,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (movieToRecord.SavestateFramebuffer != null)
|
||||
{
|
||||
|
||||
movieToRecord.SavestateFramebuffer = (int[])Global.Emulator.VideoProvider.GetVideoBuffer().Clone();
|
||||
movieToRecord.SavestateFramebuffer = (int[])Global.Emulator.VideoProvider().GetVideoBuffer().Clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
[RequiredService]
|
||||
public IEmulator Emulator { get; set; }
|
||||
[RequiredService]
|
||||
public IVideoProvider VideoProvider { get; set; }
|
||||
|
||||
private readonly Dictionary<int, string> _filterMappings = new Dictionary<int, string>
|
||||
{
|
||||
|
@ -57,7 +59,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
)]
|
||||
public int BufferHeight()
|
||||
{
|
||||
var height = Emulator.VideoProvider.BufferHeight;
|
||||
var height = VideoProvider.BufferHeight;
|
||||
var point = new System.Drawing.Point(0, height);
|
||||
|
||||
return GlobalWin.DisplayManager.TransformPoint(point).Y - BorderHeight();
|
||||
|
@ -69,7 +71,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
)]
|
||||
public int BufferWidth()
|
||||
{
|
||||
var width = Emulator.VideoProvider.BufferWidth;
|
||||
var width = VideoProvider.BufferWidth;
|
||||
var point = new System.Drawing.Point(width, 0);
|
||||
|
||||
return GlobalWin.DisplayManager.TransformPoint(point).X - BorderWidth();
|
||||
|
|
|
@ -32,7 +32,6 @@ namespace BizHawk.Emulation.Common
|
|||
private readonly int[] frameBuffer = new int[256 * 192];
|
||||
private readonly Random rand = new Random();
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public ISoundProvider SoundProvider { get { return this; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return this; } }
|
||||
public bool StartAsyncSound() { return true; }
|
||||
|
|
|
@ -14,11 +14,6 @@ namespace BizHawk.Emulation.Common
|
|||
/// <returns></returns>
|
||||
IEmulatorServiceProvider ServiceProvider { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Video provider to the client
|
||||
/// </summary>
|
||||
IVideoProvider VideoProvider { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Sound provider for async operation. this is optional, and is only required after StartAsyncSound() is called and returns true
|
||||
/// </summary>
|
||||
|
@ -85,4 +80,13 @@ namespace BizHawk.Emulation.Common
|
|||
/// </summary>
|
||||
CoreComm CoreComm { get; }
|
||||
}
|
||||
|
||||
public static class VideoProviderGlue
|
||||
{
|
||||
// todo: this will go away
|
||||
public static IVideoProvider VideoProvider(this IEmulator emu)
|
||||
{
|
||||
return emu.ServiceProvider.GetService<IVideoProvider>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -77,6 +77,7 @@ namespace BizHawk.Emulation.Cores.Calculators
|
|||
|
||||
HardReset();
|
||||
SetupMemoryDomains();
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(new MyVideoProvider(this));
|
||||
}
|
||||
|
||||
public IEmulatorServiceProvider ServiceProvider { get; private set; }
|
||||
|
@ -435,10 +436,6 @@ namespace BizHawk.Emulation.Cores.Calculators
|
|||
public int BufferHeight { get { return 64; } }
|
||||
public int BackgroundColor { get { return 0; } }
|
||||
}
|
||||
public IVideoProvider VideoProvider
|
||||
{
|
||||
get { return new MyVideoProvider(this); }
|
||||
}
|
||||
|
||||
public ISoundProvider SoundProvider { get { return NullSound.SilenceProvider; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return new FakeSyncSound(NullSound.SilenceProvider, 735); } }
|
||||
|
|
|
@ -37,6 +37,8 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
cyclesPerFrame = board.vic.CyclesPerFrame;
|
||||
SetupMemoryDomains();
|
||||
HardReset();
|
||||
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(board.vic);
|
||||
}
|
||||
|
||||
// internal variables
|
||||
|
@ -68,7 +70,6 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
|||
public ISoundProvider SoundProvider { get { return null; } }
|
||||
public bool StartAsyncSound() { return false; } //TODO
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return board.sid.resampler; } }
|
||||
public IVideoProvider VideoProvider { get { return board.vic; } }
|
||||
|
||||
// controller
|
||||
public ControllerDefinition ControllerDefinition { get { return C64ControllerDefinition; } }
|
||||
|
|
|
@ -47,9 +47,10 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
|||
RebootCore();
|
||||
SetupMemoryDomains();
|
||||
|
||||
var ser = new BasicServiceProvider(this);
|
||||
var ser = new BasicServiceProvider(this);
|
||||
ser.Register<IDisassemblable>(Cpu);
|
||||
ser.Register<ITraceable>(Tracer);
|
||||
ser.Register<IVideoProvider>(_tia);
|
||||
ServiceProvider = ser;
|
||||
}
|
||||
|
||||
|
@ -61,8 +62,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
|||
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
|
||||
public IVideoProvider VideoProvider { get { return _tia; } }
|
||||
|
||||
public ISoundProvider SoundProvider { get { return _dcfilter; } }
|
||||
|
||||
// todo: make this not so ugly
|
||||
|
|
|
@ -34,6 +34,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari7800
|
|||
public Atari7800(CoreComm comm, GameInfo game, byte[] rom, string GameDBfn)
|
||||
{
|
||||
ServiceProvider = new BasicServiceProvider(this);
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(avProvider);
|
||||
InputCallbacks = new InputCallbackSystem();
|
||||
CoreComm = comm;
|
||||
byte[] highscoreBIOS = comm.CoreFileProvider.GetFirmware("A78", "Bios_HSC", false, "Some functions may not work without the high score BIOS.");
|
||||
|
@ -208,7 +209,6 @@ namespace BizHawk.Emulation.Cores.Atari.Atari7800
|
|||
public ISyncSoundProvider SyncSoundProvider { get { return avProvider; } }
|
||||
public bool StartAsyncSound() { return false; }
|
||||
public void EndAsyncSound() { }
|
||||
public IVideoProvider VideoProvider { get { return avProvider; } }
|
||||
public ISoundProvider SoundProvider { get { return null; } }
|
||||
|
||||
MyAVProvider avProvider = new MyAVProvider();
|
||||
|
|
|
@ -334,7 +334,6 @@ namespace BizHawk.Emulation.Cores.Atari.Lynx
|
|||
|
||||
int[] videobuff = new int[WIDTH * HEIGHT];
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public int[] GetVideoBuffer() { return videobuff; }
|
||||
public int VirtualWidth { get { return BufferWidth; } }
|
||||
public int VirtualHeight { get { return BufferHeight; } }
|
||||
|
|
|
@ -47,6 +47,7 @@ namespace BizHawk.Emulation.Cores.ColecoVision
|
|||
Cpu.WriteHardware = WritePort;
|
||||
|
||||
VDP = new TMS9918A(Cpu);
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(VDP);
|
||||
PSG = new SN76489();
|
||||
|
||||
// TODO: hack to allow bios-less operation would be nice, no idea if its feasible
|
||||
|
@ -159,7 +160,6 @@ namespace BizHawk.Emulation.Cores.ColecoVision
|
|||
public string SystemId { get { return "Coleco"; } }
|
||||
public GameInfo game;
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
public IVideoProvider VideoProvider { get { return VDP; } }
|
||||
public ISoundProvider SoundProvider { get { return PSG; } }
|
||||
|
||||
public string BoardName { get { return null; } }
|
||||
|
|
|
@ -79,6 +79,7 @@ namespace BizHawk.Emulation.Cores.Intellivision
|
|||
Stic.ReadMemory = ReadMemory;
|
||||
Stic.WriteMemory = WriteMemory;
|
||||
Stic.Reset();
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(Stic);
|
||||
|
||||
Psg = new PSG();
|
||||
Psg.ReadMemory = ReadMemory;
|
||||
|
@ -107,7 +108,6 @@ namespace BizHawk.Emulation.Cores.Intellivision
|
|||
}
|
||||
}
|
||||
|
||||
public IVideoProvider VideoProvider { get { return Stic; } }
|
||||
public ISoundProvider SoundProvider { get { return NullSound.SilenceProvider; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return new FakeSyncSound(NullSound.SilenceProvider, 735); } }
|
||||
public bool StartAsyncSound() { return true; }
|
||||
|
|
|
@ -509,8 +509,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
|||
|
||||
#region IVideoProvider
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
int[] videobuffer;
|
||||
GCHandle videohandle;
|
||||
|
||||
|
|
|
@ -531,7 +531,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
|||
int[] videobuff = new int[240 * 160];
|
||||
int[] videopalette = new int[65536];
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public int[] GetVideoBuffer() { return videobuff; }
|
||||
public int VirtualWidth { get { return 240; } }
|
||||
public int VirtualHeight { get { return 160; } }
|
||||
|
|
|
@ -869,11 +869,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
|||
|
||||
#region IVideoProvider
|
||||
|
||||
public IVideoProvider VideoProvider
|
||||
{
|
||||
get { return this; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// stored image of most recent frame
|
||||
/// </summary>
|
||||
|
|
|
@ -92,7 +92,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
|||
private readonly MemoryCallbackSystem _memorycallbacks = new MemoryCallbackSystem();
|
||||
public IMemoryCallbackSystem MemoryCallbacks { get { return _memorycallbacks; } }
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public ISoundProvider SoundProvider { get { return null; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return this; } }
|
||||
public bool StartAsyncSound() { return false; }
|
||||
|
|
|
@ -128,7 +128,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
|
|||
_videoProvider = new N64VideoProvider(api, videosettings);
|
||||
_audioProvider = new N64Audio(api);
|
||||
_inputProvider = new N64Input(this.AsInputPollable(), api, comm, this._syncSettings.Controllers);
|
||||
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(_videoProvider);
|
||||
|
||||
string rsp = _syncSettings.Rsp == N64SyncSettings.RspType.Rsp_Hle ?
|
||||
"mupen64plus-rsp-hle.dll" :
|
||||
|
@ -233,8 +233,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
|
|||
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
|
||||
public IVideoProvider VideoProvider { get { return _videoProvider; } }
|
||||
|
||||
public DisplayType DisplayType { get { return _display_type; } }
|
||||
|
||||
public ISoundProvider SoundProvider { get { return null; } }
|
||||
|
|
|
@ -55,6 +55,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
|
||||
Tracer = new TraceBuffer();
|
||||
ser.Register<ITraceable>(Tracer);
|
||||
ser.Register<IVideoProvider>(videoProvider);
|
||||
|
||||
if (board is BANDAI_FCG_1)
|
||||
{
|
||||
|
@ -301,7 +302,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
|||
}
|
||||
|
||||
MyVideoProvider videoProvider;
|
||||
public IVideoProvider VideoProvider { get { return videoProvider; } }
|
||||
public ISoundProvider SoundProvider { get { return magicSoundProvider; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return magicSoundProvider; } }
|
||||
public bool StartAsyncSound() { return true; }
|
||||
|
|
|
@ -672,7 +672,6 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES
|
|||
LibQuickNES.qn_blit(Context, VideoOutput, VideoPalette, cropleft, croptop, cropright, cropbottom);
|
||||
}
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public int[] GetVideoBuffer() { return VideoOutput; }
|
||||
public int VirtualWidth { get { return (int)(BufferWidth * 1.146); } }
|
||||
public int VirtualHeight { get { return BufferHeight; } }
|
||||
|
|
|
@ -686,8 +686,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
|||
int[] vidBuffer = new int[256 * 224];
|
||||
int vidWidth = 256, vidHeight = 224;
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
public ControllerDefinition ControllerDefinition { get { return SNESController; } }
|
||||
IController controller;
|
||||
public IController Controller
|
||||
|
|
|
@ -62,7 +62,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
|
|||
#region IVideoProvider
|
||||
|
||||
private int[] _vbuff = new int[512 * 480];
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public int[] GetVideoBuffer() { return _vbuff; }
|
||||
public int VirtualWidth
|
||||
{ get { return BufferWidth; } }
|
||||
|
|
|
@ -87,14 +87,6 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
|||
_syncSettings = (PCESyncSettings)syncSettings ?? new PCESyncSettings();
|
||||
Init(game, rom);
|
||||
SetControllerButtons();
|
||||
|
||||
{
|
||||
var ser = new BasicServiceProvider(this);
|
||||
ServiceProvider = ser;
|
||||
Tracer = new TraceBuffer();
|
||||
ser.Register<ITraceable>(Tracer);
|
||||
ser.Register<IDisassemblable>(Cpu);
|
||||
}
|
||||
}
|
||||
|
||||
public IEmulatorServiceProvider ServiceProvider { get; private set; }
|
||||
|
@ -304,6 +296,15 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
|||
|
||||
Cpu.ResetPC();
|
||||
SetupMemoryDomains();
|
||||
|
||||
{
|
||||
var ser = new BasicServiceProvider(this);
|
||||
ServiceProvider = ser;
|
||||
Tracer = new TraceBuffer();
|
||||
ser.Register<ITraceable>(Tracer);
|
||||
ser.Register<IDisassemblable>(Cpu);
|
||||
ser.Register<IVideoProvider>((IVideoProvider)VPC ?? VDC1);
|
||||
}
|
||||
}
|
||||
|
||||
int lagCount;
|
||||
|
@ -363,11 +364,6 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
|||
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
|
||||
public IVideoProvider VideoProvider
|
||||
{
|
||||
get { return (IVideoProvider)VPC ?? VDC1; }
|
||||
}
|
||||
|
||||
ISoundProvider soundProvider;
|
||||
public ISoundProvider SoundProvider
|
||||
{
|
||||
|
|
|
@ -96,6 +96,7 @@ namespace BizHawk.Emulation.Cores.Sega.Genesis
|
|||
PSG = new SN76489() { MaxVolume = 4681 };
|
||||
VDP = new GenVDP();
|
||||
VDP.DmaReadFrom68000 = ReadWord;
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(VDP);
|
||||
SoundMixer = new SoundMixer(YM2612, PSG);
|
||||
|
||||
MainCPU.ReadByte = ReadByte;
|
||||
|
@ -299,11 +300,6 @@ namespace BizHawk.Emulation.Cores.Sega.Genesis
|
|||
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
|
||||
public IVideoProvider VideoProvider
|
||||
{
|
||||
get { return VDP; }
|
||||
}
|
||||
|
||||
public ISoundProvider SoundProvider
|
||||
{
|
||||
get { return SoundMixer; }
|
||||
|
|
|
@ -145,6 +145,7 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
|||
Cpu.WriteHardware = WritePort;
|
||||
|
||||
Vdp = new VDP(this, Cpu, IsGameGear ? VdpMode.GameGear : VdpMode.SMS, DisplayType);
|
||||
(ServiceProvider as BasicServiceProvider).Register<IVideoProvider>(Vdp);
|
||||
PSG = new SN76489();
|
||||
YM2413 = new YM2413();
|
||||
SoundMixer = new SoundMixer(YM2413, PSG);
|
||||
|
@ -413,7 +414,6 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
|||
}
|
||||
}
|
||||
|
||||
public IVideoProvider VideoProvider { get { return Vdp; } }
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
|
||||
ISoundProvider ActiveSoundProvider;
|
||||
|
|
|
@ -324,7 +324,6 @@ namespace BizHawk.Emulation.Cores.Sega.Saturn
|
|||
|
||||
#region IVideoProvider
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
int[] VideoBuffer = new int[704 * 512];
|
||||
public int[] GetVideoBuffer() { return VideoBuffer; }
|
||||
public int VirtualWidth { get { return BufferWidth; } }
|
||||
|
|
|
@ -746,8 +746,6 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
|
|||
|
||||
public DisplayType DisplayType { get; private set; }
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
int[] vidbuff = new int[0];
|
||||
int vwidth;
|
||||
int vheight;
|
||||
|
|
|
@ -34,7 +34,6 @@ namespace BizHawk.Emulation.Cores.Sony.PSP
|
|||
}
|
||||
};
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
public ISoundProvider SoundProvider { get { return null; } }
|
||||
public ISyncSoundProvider SyncSoundProvider { get { return this; } }
|
||||
public bool StartAsyncSound() { return false; }
|
||||
|
|
|
@ -71,7 +71,6 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
|
|||
private int[] frameBuffer = new int[0];
|
||||
private Random rand = new Random();
|
||||
public CoreComm CoreComm { get; private set; }
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
//we can only have one active core at a time, due to the lib being so static.
|
||||
//so we'll track the current one here and detach the previous one whenever a new one is booted up.
|
||||
|
|
|
@ -187,8 +187,6 @@ namespace BizHawk.Emulation.Cores.WonderSwan
|
|||
|
||||
#region IVideoProvider
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
void InitVideo(bool rotate)
|
||||
{
|
||||
if (rotate)
|
||||
|
|
|
@ -432,8 +432,6 @@ namespace BizHawk.Emulation.Cores
|
|||
|
||||
#region IVideoProvider
|
||||
|
||||
public IVideoProvider VideoProvider { get { return this; } }
|
||||
|
||||
float dar;
|
||||
int[] vidbuff;
|
||||
LibRetro.RETRO_PIXEL_FORMAT pixelfmt = LibRetro.RETRO_PIXEL_FORMAT.XRGB1555;
|
||||
|
|
Loading…
Reference in New Issue