From db73b7f2751812b843d9ed75b5a36fa2a65884a0 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Mon, 26 Jun 2017 17:34:01 -0400 Subject: [PATCH] virtual boyee: make frame 0 size match other frame sizes --- .../Consoles/Nintendo/VB/LibVirtualBoyee.cs | 3 + .../Consoles/Nintendo/VB/VirtualBoyee.cs | 474 +++++++++--------- output/dll/vb.wbx.gz | Bin 37597 -> 37759 bytes waterbox/vb/vb.cpp | 5 + waterbox/vb/vip.cpp | 28 +- waterbox/vb/vip.h | 1 + 6 files changed, 266 insertions(+), 245 deletions(-) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/LibVirtualBoyee.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/LibVirtualBoyee.cs index 924fdc2816..89beef4e9a 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/LibVirtualBoyee.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/LibVirtualBoyee.cs @@ -81,5 +81,8 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB [BizImport(CC)] public abstract void HardReset(); + + [BizImport(CC)] + public abstract void PredictFrameSize([In, Out]FrameInfo frame); } } diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/VirtualBoyee.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/VirtualBoyee.cs index e2321477d5..1ef01e5336 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/VirtualBoyee.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/VB/VirtualBoyee.cs @@ -1,29 +1,29 @@ -using BizHawk.Common; -using BizHawk.Common.BizInvoke; -using BizHawk.Common.BufferExtensions; -using BizHawk.Emulation.Common; -using BizHawk.Emulation.Cores.Waterbox; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; - -namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB -{ - [CoreAttributes("Virtual Boyee", "Ryphecha", true, true, "0.9.44.1", - "https://mednafen.github.io/releases/", false)] - public class VirtualBoyee : WaterboxCore, ISettable - { - private LibVirtualBoyee _boyee; - - [CoreConstructor("VB")] - public VirtualBoyee(CoreComm comm, byte[] rom, Settings settings, SyncSettings syncSettings) +using BizHawk.Common; +using BizHawk.Common.BizInvoke; +using BizHawk.Common.BufferExtensions; +using BizHawk.Emulation.Common; +using BizHawk.Emulation.Cores.Waterbox; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; + +namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB +{ + [CoreAttributes("Virtual Boyee", "Ryphecha", true, true, "0.9.44.1", + "https://mednafen.github.io/releases/", false)] + public class VirtualBoyee : WaterboxCore, ISettable + { + private LibVirtualBoyee _boyee; + + [CoreConstructor("VB")] + public VirtualBoyee(CoreComm comm, byte[] rom, Settings settings, SyncSettings syncSettings) :base(comm, new Configuration { DefaultFpsNumerator = 20000000, @@ -34,220 +34,226 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB MaxHeight = 1024, MaxSamples = 8192, SystemId = "VB" - }) - { - _settings = settings ?? new Settings(); - _syncSettings = syncSettings ?? new SyncSettings(); - // TODO: the way settings work in this core, changing the non-sync ones will invalidate savestates - var nativeSettings = LibVirtualBoyee.NativeSettings.FromFrontendSettings(_settings, _syncSettings); - - _boyee = PreInit(new PeRunnerOptions - { - Filename = "vb.wbx", - SbrkHeapSizeKB = 256, - SealedHeapSizeKB = 4 * 1024, - InvisibleHeapSizeKB = 256, - PlainHeapSizeKB = 256 - }); - - if (!_boyee.Load(rom, rom.Length, nativeSettings)) + }) + { + _settings = settings ?? new Settings(); + _syncSettings = syncSettings ?? new SyncSettings(); + // TODO: the way settings work in this core, changing the non-sync ones will invalidate savestates + var nativeSettings = LibVirtualBoyee.NativeSettings.FromFrontendSettings(_settings, _syncSettings); + + _boyee = PreInit(new PeRunnerOptions + { + Filename = "vb.wbx", + SbrkHeapSizeKB = 256, + SealedHeapSizeKB = 4 * 1024, + InvisibleHeapSizeKB = 256, + PlainHeapSizeKB = 256 + }); + + if (!_boyee.Load(rom, rom.Length, nativeSettings)) throw new InvalidOperationException("Core rejected the rom"); - PostInit(); - } - + // do a quick hack up for frame zero size + var tmp = new LibVirtualBoyee.FrameInfo(); + _boyee.PredictFrameSize(tmp); + BufferWidth = tmp.Width; + BufferHeight = tmp.Height; + + PostInit(); + } + protected override LibWaterboxCore.FrameInfo FrameAdvancePrep(IController controller, bool render, bool rendersound) { - if (controller.IsPressed("Power")) + if (controller.IsPressed("Power")) _boyee.HardReset(); return new LibVirtualBoyee.FrameInfo { Buttons = GetButtons(controller) }; - } - - #region Controller - - private LibVirtualBoyee.Buttons GetButtons(IController c) - { - var ret = 0; - var val = 1; - foreach (var s in CoreButtons) - { - if (c.IsPressed(s)) - ret |= val; - val <<= 1; - } - return (LibVirtualBoyee.Buttons)ret; - } - - private static readonly string[] CoreButtons = - { - "A", "B", "R", "L", - "R_Up", "R_Right", - "L_Right", "L_Left", "L_Down", "L_Up", - "Start", "Select", "R_Left", "R_Down" - }; - - private static readonly Dictionary _buttonOrdinals = new Dictionary - { - ["L_Up"] = 1, - ["L_Down"] = 2, - ["L_Left"] = 3, - ["L_Right"] = 4, - ["R_Up"] = 5, - ["R_Down"] = 6, - ["R_Left"] = 7, - ["R_Right"] = 8, - ["B"] = 9, + } + + #region Controller + + private LibVirtualBoyee.Buttons GetButtons(IController c) + { + var ret = 0; + var val = 1; + foreach (var s in CoreButtons) + { + if (c.IsPressed(s)) + ret |= val; + val <<= 1; + } + return (LibVirtualBoyee.Buttons)ret; + } + + private static readonly string[] CoreButtons = + { + "A", "B", "R", "L", + "R_Up", "R_Right", + "L_Right", "L_Left", "L_Down", "L_Up", + "Start", "Select", "R_Left", "R_Down" + }; + + private static readonly Dictionary _buttonOrdinals = new Dictionary + { + ["L_Up"] = 1, + ["L_Down"] = 2, + ["L_Left"] = 3, + ["L_Right"] = 4, + ["R_Up"] = 5, + ["R_Down"] = 6, + ["R_Left"] = 7, + ["R_Right"] = 8, + ["B"] = 9, ["A"] = 10, ["L"] = 11, - ["R"] = 12, - ["Select"] = 13, - ["Start"] = 14 - }; - - private static readonly ControllerDefinition VirtualBoyController = new ControllerDefinition - { - Name = "VirtualBoy Controller", - BoolButtons = CoreButtons - .OrderBy(b => _buttonOrdinals[b]) - .Concat(new[] { "Power" }) - .ToList() - }; - - public override ControllerDefinition ControllerDefinition => VirtualBoyController; - - #endregion - - #region ISettable - - public class SyncSettings - { - [DefaultValue(false)] - [Description("Reduce input latency. Works with all known commercial games, may have homebrew issues.")] - public bool InstantReadHack { get; set; } - [DefaultValue(false)] - [Description("Disable parallax for rendering.")] - public bool DisableParallax { get; set; } - - public SyncSettings Clone() - { - return (SyncSettings)MemberwiseClone(); - } - - public static bool NeedsReboot(SyncSettings x, SyncSettings y) - { - return !DeepEquality.DeepEquals(x, y); - } - - public SyncSettings() - { - SettingsUtil.SetDefaultValues(this); - } - } - - public class Settings - { - public enum ThreeDeeModes : int - { - Anaglyph = 0, - CyberScope = 1, - SideBySide = 2, - //OverUnder, - VerticalInterlaced = 4, - HorizontalInterlaced = 5 - } - - [DefaultValue(ThreeDeeModes.Anaglyph)] - [Description("How to display the 3d image. Use whichever method works with your VR hardware.")] - public ThreeDeeModes ThreeDeeMode { get; set; } - - [DefaultValue(false)] - [Description("Swap the left and right views.")] - public bool SwapViews { get; set; } - - public enum AnaglyphPresets : int - { - Custom, - RedBlue, - RedCyan, - RedElectricCyan, - RedGreen, - GreenMagneto, - YellowBlue - } - - [DefaultValue(AnaglyphPresets.RedBlue)] - [Description("Color preset for Anaglyph mode.")] - public AnaglyphPresets AnaglyphPreset { get; set; } - - [DefaultValue(typeof(Color), "Green")] - [Description("Left anaglyph color. Ignored unless Preset is Custom.")] - public Color AnaglyphCustomLeftColor { get; set; } - [DefaultValue(typeof(Color), "Purple")] - [Description("Right anaglyph color. Ignored unless Preset is Custom.")] - public Color AnaglyphCustomRightColor { get; set; } - - [DefaultValue(typeof(Color), "White")] - [Description("Display color for all of the non-anaglyph modes. Real hardware was red, but other colors may be easier on your eyes.")] - public Color NonAnaglyphColor { get; set; } - - [DefaultValue(1750)] - [Range(1000, 2000)] - [Description("LED gamma ramp. Range of 1000 to 2000")] - public int LedOnScale { get; set; } - - [DefaultValue(2)] - [Range(1, 10)] - public int InterlacePrescale { get; set; } - - [DefaultValue(0)] - [Range(0, 1024)] - [Description("How many pixels to put between views in Side By Side mode")] - public int SideBySideSeparation { get; set; } - - public Settings Clone() - { - return (Settings)MemberwiseClone(); - } - - public static bool NeedsReboot(Settings x, Settings y) - { - return !DeepEquality.DeepEquals(x, y); - } - - public Settings() - { - SettingsUtil.SetDefaultValues(this); - } - } - - private Settings _settings; - private SyncSettings _syncSettings; - - public Settings GetSettings() - { - return _settings.Clone(); - } - - public SyncSettings GetSyncSettings() - { - return _syncSettings.Clone(); - } - - public bool PutSettings(Settings o) - { - var ret = Settings.NeedsReboot(_settings, o); - _settings = o; - return ret; - } - - public bool PutSyncSettings(SyncSettings o) - { - var ret = SyncSettings.NeedsReboot(_syncSettings, o); - _syncSettings = o; - return ret; - } - - #endregion - } -} + ["R"] = 12, + ["Select"] = 13, + ["Start"] = 14 + }; + + private static readonly ControllerDefinition VirtualBoyController = new ControllerDefinition + { + Name = "VirtualBoy Controller", + BoolButtons = CoreButtons + .OrderBy(b => _buttonOrdinals[b]) + .Concat(new[] { "Power" }) + .ToList() + }; + + public override ControllerDefinition ControllerDefinition => VirtualBoyController; + + #endregion + + #region ISettable + + public class SyncSettings + { + [DefaultValue(false)] + [Description("Reduce input latency. Works with all known commercial games, may have homebrew issues.")] + public bool InstantReadHack { get; set; } + [DefaultValue(false)] + [Description("Disable parallax for rendering.")] + public bool DisableParallax { get; set; } + + public SyncSettings Clone() + { + return (SyncSettings)MemberwiseClone(); + } + + public static bool NeedsReboot(SyncSettings x, SyncSettings y) + { + return !DeepEquality.DeepEquals(x, y); + } + + public SyncSettings() + { + SettingsUtil.SetDefaultValues(this); + } + } + + public class Settings + { + public enum ThreeDeeModes : int + { + Anaglyph = 0, + CyberScope = 1, + SideBySide = 2, + //OverUnder, + VerticalInterlaced = 4, + HorizontalInterlaced = 5 + } + + [DefaultValue(ThreeDeeModes.Anaglyph)] + [Description("How to display the 3d image. Use whichever method works with your VR hardware.")] + public ThreeDeeModes ThreeDeeMode { get; set; } + + [DefaultValue(false)] + [Description("Swap the left and right views.")] + public bool SwapViews { get; set; } + + public enum AnaglyphPresets : int + { + Custom, + RedBlue, + RedCyan, + RedElectricCyan, + RedGreen, + GreenMagneto, + YellowBlue + } + + [DefaultValue(AnaglyphPresets.RedBlue)] + [Description("Color preset for Anaglyph mode.")] + public AnaglyphPresets AnaglyphPreset { get; set; } + + [DefaultValue(typeof(Color), "Green")] + [Description("Left anaglyph color. Ignored unless Preset is Custom.")] + public Color AnaglyphCustomLeftColor { get; set; } + [DefaultValue(typeof(Color), "Purple")] + [Description("Right anaglyph color. Ignored unless Preset is Custom.")] + public Color AnaglyphCustomRightColor { get; set; } + + [DefaultValue(typeof(Color), "White")] + [Description("Display color for all of the non-anaglyph modes. Real hardware was red, but other colors may be easier on your eyes.")] + public Color NonAnaglyphColor { get; set; } + + [DefaultValue(1750)] + [Range(1000, 2000)] + [Description("LED gamma ramp. Range of 1000 to 2000")] + public int LedOnScale { get; set; } + + [DefaultValue(2)] + [Range(1, 10)] + public int InterlacePrescale { get; set; } + + [DefaultValue(0)] + [Range(0, 1024)] + [Description("How many pixels to put between views in Side By Side mode")] + public int SideBySideSeparation { get; set; } + + public Settings Clone() + { + return (Settings)MemberwiseClone(); + } + + public static bool NeedsReboot(Settings x, Settings y) + { + return !DeepEquality.DeepEquals(x, y); + } + + public Settings() + { + SettingsUtil.SetDefaultValues(this); + } + } + + private Settings _settings; + private SyncSettings _syncSettings; + + public Settings GetSettings() + { + return _settings.Clone(); + } + + public SyncSettings GetSyncSettings() + { + return _syncSettings.Clone(); + } + + public bool PutSettings(Settings o) + { + var ret = Settings.NeedsReboot(_settings, o); + _settings = o; + return ret; + } + + public bool PutSyncSettings(SyncSettings o) + { + var ret = SyncSettings.NeedsReboot(_syncSettings, o); + _syncSettings = o; + return ret; + } + + #endregion + } +} diff --git a/output/dll/vb.wbx.gz b/output/dll/vb.wbx.gz index d76e6f75468ade5f231fbb9be10ed923034118a3..cda73284d93b62430585ac279d508d1d7adbfe41 100644 GIT binary patch literal 37759 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 bcEzsR_(w}8YD6mS9L@Ov9kYoS4srniS(KX8 literal 37597 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≥KPF)*1n#=P7_!y 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 diff --git a/waterbox/vb/vb.cpp b/waterbox/vb/vb.cpp index 82aec1e0fa..9087ea46dd 100644 --- a/waterbox/vb/vb.cpp +++ b/waterbox/vb/vb.cpp @@ -779,6 +779,11 @@ EXPORT void FrameAdvance(MyFrameInfo* frame) VB_V810->ResetTS(0); } +EXPORT void PredictFrameSize(MyFrameInfo* frame) +{ + VIP_CalcFrameSize(frame); +} + EXPORT void HardReset() { VB_Power(); diff --git a/waterbox/vb/vip.cpp b/waterbox/vb/vip.cpp index 4c31a29b2a..abb7635b53 100644 --- a/waterbox/vb/vip.cpp +++ b/waterbox/vb/vip.cpp @@ -864,18 +864,8 @@ MDFN_FASTCALL void VIP_Write16(int32 ×tamp, uint32 A, uint16 V) static MDFN_Surface real_surface; static MDFN_Surface *surface; -void VIP_StartFrame(MyFrameInfo* frame) +void VIP_CalcFrameSize(MyFrameInfo* frame) { - // puts("Start frame"); - - if (VidSettingsDirty) - { - MakeColorLUT(); - Recalc3DModeStuff(); - - VidSettingsDirty = false; - } - switch (VB3DMode) { default: @@ -903,6 +893,22 @@ void VIP_StartFrame(MyFrameInfo* frame) frame->Height = 224; break; } +} + +void VIP_StartFrame(MyFrameInfo* frame) +{ + // puts("Start frame"); + + if (VidSettingsDirty) + { + MakeColorLUT(); + Recalc3DModeStuff(); + + VidSettingsDirty = false; + } + + VIP_CalcFrameSize(frame); + surface = &real_surface; real_surface.pixels = frame->VideoBuffer; diff --git a/waterbox/vb/vip.h b/waterbox/vb/vip.h index c9cb9ab186..fcb5162be7 100644 --- a/waterbox/vb/vip.h +++ b/waterbox/vb/vip.h @@ -38,6 +38,7 @@ v810_timestamp_t MDFN_FASTCALL VIP_Update(const v810_timestamp_t timestamp); void VIP_ResetTS(void); void VIP_StartFrame(MyFrameInfo* frame); +void VIP_CalcFrameSize(MyFrameInfo* frame); MDFN_FASTCALL uint8 VIP_Read8(v810_timestamp_t ×tamp, uint32 A); MDFN_FASTCALL uint16 VIP_Read16(v810_timestamp_t ×tamp, uint32 A);