diff --git a/Virtu/Machine.cs b/Virtu/Machine.cs index 9f67ecd..ae7eef2 100644 --- a/Virtu/Machine.cs +++ b/Virtu/Machine.cs @@ -206,7 +206,7 @@ private void Run() // machine thread public MachineEvents Events { get; private set; } public MachineServices Services { get; private set; } - public MachineState State { get; private set; } + public MachineState State { get { return _state; } private set { _state = value; } } public Cpu Cpu { get; private set; } public Memory Memory { get; private set; } @@ -235,6 +235,7 @@ private void Run() // machine thread private DebugService _debugService; private StorageService _storageService; + private volatile MachineState _state; private AutoResetEvent _pauseEvent = new AutoResetEvent(false); private AutoResetEvent _unpauseEvent = new AutoResetEvent(false); diff --git a/Virtu/Services/VideoService.cs b/Virtu/Services/VideoService.cs index 3ab1498..43a81ae 100644 --- a/Virtu/Services/VideoService.cs +++ b/Virtu/Services/VideoService.cs @@ -7,7 +7,10 @@ protected VideoService(Machine machine) : { } - public abstract void SetFullScreen(bool isFullScreen); + public virtual void SetFullScreen(bool isFullScreen) + { + } + public abstract void SetPixel(int x, int y, uint color); public abstract void Update(); // main thread } diff --git a/Virtu/Video.cs b/Virtu/Video.cs index f1dbd64..46adc7f 100644 --- a/Virtu/Video.cs +++ b/Virtu/Video.cs @@ -29,6 +29,7 @@ public override void Initialize() _memory = Machine.Memory; _videoService = Machine.Services.GetService(); +#if SILVERLIGHT || WPF _colorBlack = 0xFF000000; // BGRA _colorDarkBlue = 0xFF000099; _colorDarkGreen = 0xFF117722; @@ -46,6 +47,25 @@ public override void Initialize() _colorYellow = 0xFFFFFF11; _colorWhite = 0xFFFFFFFF; _colorMonochrome = 0xFF00AA00; +#else + _colorBlack = 0xFF000000; // RGBA + _colorDarkBlue = 0xFF990000; + _colorDarkGreen = 0xFF227711; + _colorMediumBlue = 0xFFFF0000; + _colorBrown = 0xFF005588; + _colorLightGrey = 0xFFAAAA99; + _colorGreen = 0xFF11EE00; + _colorAquamarine = 0xFFAAFF55; + _colorDeepRed = 0xFF1111FF; + _colorPurple = 0xFFDD00DD; + _colorDarkGrey = 0xFF555544; + _colorLightBlue = 0xFFFFAA33; + _colorOrange = 0xFF1144FF; + _colorPink = 0xFF8899FF; + _colorYellow = 0xFF11FFFF; + _colorWhite = 0xFFFFFFFF; + _colorMonochrome = 0xFF00AA00; +#endif SetPalette(); IsFullScreen = false; diff --git a/Virtu/Wpf/Jellyfish.Virtu.Wpf.csproj b/Virtu/Wpf/Jellyfish.Virtu.Wpf.csproj index 4870f51..9119a7a 100644 --- a/Virtu/Wpf/Jellyfish.Virtu.Wpf.csproj +++ b/Virtu/Wpf/Jellyfish.Virtu.Wpf.csproj @@ -23,7 +23,7 @@ full false bin\ - DEBUG;TRACE;WINDOWS;CODE_ANALYSIS + DEBUG;TRACE;WPF;WINDOWS;CODE_ANALYSIS prompt 4 true @@ -35,7 +35,7 @@ pdbonly true bin\ - TRACE;WINDOWS;CODE_ANALYSIS + TRACE;WPF;WINDOWS;CODE_ANALYSIS prompt 4 true diff --git a/Virtu/Xna/Jellyfish.Virtu.Xna.Phone.csproj b/Virtu/Xna/Jellyfish.Virtu.Xna.Phone.csproj index 9c9421c..75b79de 100644 --- a/Virtu/Xna/Jellyfish.Virtu.Xna.Phone.csproj +++ b/Virtu/Xna/Jellyfish.Virtu.Xna.Phone.csproj @@ -30,7 +30,7 @@ full false bin\Windows Phone\ - DEBUG;TRACE;WINDOWS_PHONE;CODE_ANALYSIS + DEBUG;TRACE;XNA;WINDOWS_PHONE;CODE_ANALYSIS prompt 4 true @@ -45,7 +45,7 @@ pdbonly true bin\Windows Phone\ - TRACE;WINDOWS_PHONE;CODE_ANALYSIS + TRACE;XNA;WINDOWS_PHONE;CODE_ANALYSIS prompt 4 true diff --git a/Virtu/Xna/Jellyfish.Virtu.Xna.Xbox.csproj b/Virtu/Xna/Jellyfish.Virtu.Xna.Xbox.csproj index b822db7..444f352 100644 --- a/Virtu/Xna/Jellyfish.Virtu.Xna.Xbox.csproj +++ b/Virtu/Xna/Jellyfish.Virtu.Xna.Xbox.csproj @@ -24,7 +24,7 @@ full false bin\Xbox 360\ - DEBUG;TRACE;XBOX;XBOX360;CODE_ANALYSIS + DEBUG;TRACE;XNA;XBOX;XBOX360;CODE_ANALYSIS prompt 4 true @@ -39,7 +39,7 @@ pdbonly true bin\Xbox 360\ - TRACE;XBOX;XBOX360;CODE_ANALYSIS + TRACE;XNA;XBOX;XBOX360;CODE_ANALYSIS prompt 4 true diff --git a/Virtu/Xna/Jellyfish.Virtu.Xna.csproj b/Virtu/Xna/Jellyfish.Virtu.Xna.csproj index 6cb0660..6fd3535 100644 --- a/Virtu/Xna/Jellyfish.Virtu.Xna.csproj +++ b/Virtu/Xna/Jellyfish.Virtu.Xna.csproj @@ -24,7 +24,7 @@ full false bin\x86\ - DEBUG;TRACE;WINDOWS;CODE_ANALYSIS + DEBUG;TRACE;XNA;WINDOWS;CODE_ANALYSIS prompt 4 true @@ -39,7 +39,7 @@ pdbonly true bin\x86\ - TRACE;WINDOWS;CODE_ANALYSIS + TRACE;XNA;WINDOWS;CODE_ANALYSIS prompt 4 true diff --git a/Virtu/Xna/Services/XnaVideoService.cs b/Virtu/Xna/Services/XnaVideoService.cs index bd14361..d3e8f32 100644 --- a/Virtu/Xna/Services/XnaVideoService.cs +++ b/Virtu/Xna/Services/XnaVideoService.cs @@ -26,22 +26,22 @@ public XnaVideoService(Machine machine, GameBase game) : _game.GraphicsDeviceService.DeviceCreated += OnGraphicsDeviceServiceDeviceCreated; } +#if WINDOWS public override void SetFullScreen(bool isFullScreen) { -#if WINDOWS var graphicsDeviceManager = _game.GraphicsDeviceManager; if (graphicsDeviceManager.IsFullScreen != isFullScreen) { graphicsDeviceManager.IsFullScreen = isFullScreen; _game.SynchronizationContext.Send(state => graphicsDeviceManager.ApplyChanges(), null); } -#endif } +#endif [SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow")] public override void SetPixel(int x, int y, uint color) { - _pixels[y * TextureWidth + x] = (color & 0xFF00FF00) | ((color << 16) & 0x00FF0000) | ((color >> 16) & 0x000000FF); // RGBA + _pixels[y * TextureWidth + x] = color; _pixelsDirty = true; }