diff --git a/.gitmodules b/.gitmodules index bba6303297..1a7f6dd4ac 100644 --- a/.gitmodules +++ b/.gitmodules @@ -50,3 +50,7 @@ path = waterbox/ares64/ares/thirdparty/angrylion-rdp url = https://github.com/TASEmulators/angrylion-rdp.git branch = ares +[submodule "libmupen64plus/mupen64plus-video-angrylion-rdp"] + path = libmupen64plus/mupen64plus-video-angrylion-rdp + url = https://github.com/TASEmulators/angrylion-rdp.git + branch = biz_mupen64plus diff --git a/Assets/dll/libares64.dll b/Assets/dll/libares64.dll deleted file mode 100644 index 544f846fd3..0000000000 Binary files a/Assets/dll/libares64.dll and /dev/null differ diff --git a/Assets/dll/libares64.so b/Assets/dll/libares64.so deleted file mode 100644 index 7fa2e5115f..0000000000 Binary files a/Assets/dll/libares64.so and /dev/null differ diff --git a/Assets/dll/mupen64plus-rsp-cxd4-sse2.dll b/Assets/dll/mupen64plus-rsp-cxd4-sse2.dll new file mode 100644 index 0000000000..168a920bff Binary files /dev/null and b/Assets/dll/mupen64plus-rsp-cxd4-sse2.dll differ diff --git a/Assets/dll/mupen64plus-video-angrylion-rdp.dll b/Assets/dll/mupen64plus-video-angrylion-rdp.dll new file mode 100644 index 0000000000..42706da7f5 Binary files /dev/null and b/Assets/dll/mupen64plus-video-angrylion-rdp.dll differ diff --git a/libmupen64plus/mupen64plus-rsp-cxd4 b/libmupen64plus/mupen64plus-rsp-cxd4 index f1a944aa48..fdfb34119d 160000 --- a/libmupen64plus/mupen64plus-rsp-cxd4 +++ b/libmupen64plus/mupen64plus-rsp-cxd4 @@ -1 +1 @@ -Subproject commit f1a944aa48ded797bc802e920602580b3061c69b +Subproject commit fdfb34119d65f0a6237d0b02a7f32da6a87328e2 diff --git a/libmupen64plus/mupen64plus-video-angrylion-rdp b/libmupen64plus/mupen64plus-video-angrylion-rdp new file mode 160000 index 0000000000..bcae771488 --- /dev/null +++ b/libmupen64plus/mupen64plus-video-angrylion-rdp @@ -0,0 +1 @@ +Subproject commit bcae7714889224d0fd5fa92e4a3f7b0e867b30fd diff --git a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.Designer.cs b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.Designer.cs index 13274ed26a..9ce5668e8c 100644 --- a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.Designer.cs +++ b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.Designer.cs @@ -44,6 +44,7 @@ this.VideoResolutionComboBox = new System.Windows.Forms.ComboBox(); this.PluginComboBox = new System.Windows.Forms.ComboBox(); this.label1 = new BizHawk.WinForms.Controls.LocLabelEx(); + this.AngrylionTab = new System.Windows.Forms.TabPage(); this.GLideN64Tab = new System.Windows.Forms.TabPage(); this.Glide64mk2TabPage = new System.Windows.Forms.TabPage(); this.Glide64TabPage = new System.Windows.Forms.TabPage(); @@ -70,8 +71,10 @@ this.GlidePropertyGrid = new System.Windows.Forms.PropertyGrid(); this.Glide64Mk2PropertyGrid = new System.Windows.Forms.PropertyGrid(); this.GlideN64PropertyGrid = new System.Windows.Forms.PropertyGrid(); + this.AngrylionPropertyGrid = new System.Windows.Forms.PropertyGrid(); this.N64plugintabcontrol.SuspendLayout(); this.N64vpluginglobaltab.SuspendLayout(); + this.AngrylionTab.SuspendLayout(); this.GLideN64Tab.SuspendLayout(); this.Glide64mk2TabPage.SuspendLayout(); this.Glide64TabPage.SuspendLayout(); @@ -81,9 +84,10 @@ // N64plugintabcontrol // this.N64plugintabcontrol.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); this.N64plugintabcontrol.Controls.Add(this.N64vpluginglobaltab); + this.N64plugintabcontrol.Controls.Add(this.AngrylionTab); this.N64plugintabcontrol.Controls.Add(this.GLideN64Tab); this.N64plugintabcontrol.Controls.Add(this.Glide64mk2TabPage); this.N64plugintabcontrol.Controls.Add(this.Glide64TabPage); @@ -163,9 +167,9 @@ this.RspTypeDropdown.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.RspTypeDropdown.FormattingEnabled = true; this.RspTypeDropdown.Items.AddRange(new object[] { - "Pure Interpreter", - "Interpreter", - "DynaRec"}); + "Pure Interpreter", + "Interpreter", + "DynaRec"}); this.RspTypeDropdown.Location = new System.Drawing.Point(209, 29); this.RspTypeDropdown.Name = "RspTypeDropdown"; this.RspTypeDropdown.Size = new System.Drawing.Size(136, 21); @@ -183,9 +187,9 @@ this.CoreTypeDropdown.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.CoreTypeDropdown.FormattingEnabled = true; this.CoreTypeDropdown.Items.AddRange(new object[] { - "Pure Interpreter", - "Interpreter", - "DynaRec"}); + "Pure Interpreter", + "Interpreter", + "DynaRec"}); this.CoreTypeDropdown.Location = new System.Drawing.Point(13, 29); this.CoreTypeDropdown.Name = "CoreTypeDropdown"; this.CoreTypeDropdown.Size = new System.Drawing.Size(136, 21); @@ -208,20 +212,20 @@ this.VideoResolutionComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.VideoResolutionComboBox.FormattingEnabled = true; this.VideoResolutionComboBox.Items.AddRange(new object[] { - "320 x 240", - "400 x 300", - "480 x 360", - "512 x 384", - "640 x 480", - "800 x 600", - "1024 x 768", - "1152 x 864", - "1280 x 960", - "1400 x 1050", - "1600 x 1200", - "1920 x 1440", - "2048 x 1536", - "Custom"}); + "320 x 240", + "400 x 300", + "480 x 360", + "512 x 384", + "640 x 480", + "800 x 600", + "1024 x 768", + "1152 x 864", + "1280 x 960", + "1400 x 1050", + "1600 x 1200", + "1920 x 1440", + "2048 x 1536", + "Custom"}); this.VideoResolutionComboBox.Location = new System.Drawing.Point(13, 217); this.VideoResolutionComboBox.Name = "VideoResolutionComboBox"; this.VideoResolutionComboBox.Size = new System.Drawing.Size(136, 21); @@ -233,10 +237,11 @@ this.PluginComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.PluginComboBox.FormattingEnabled = true; this.PluginComboBox.Items.AddRange(new object[] { - "Rice", - "Glide64", - "Glide64mk2", - "GLideN64"}); + "Rice", + "Glide64", + "Glide64mk2", + "GLideN64", + "Angrylion"}); this.PluginComboBox.Location = new System.Drawing.Point(13, 91); this.PluginComboBox.Name = "PluginComboBox"; this.PluginComboBox.Size = new System.Drawing.Size(173, 21); @@ -249,6 +254,17 @@ this.label1.Name = "label1"; this.label1.Text = "Active Video Plugin"; // + // AngrylionTab + // + this.AngrylionTab.Controls.Add(this.AngrylionPropertyGrid); + this.AngrylionTab.Location = new System.Drawing.Point(4, 22); + this.AngrylionTab.Name = "AngrylionTab"; + this.AngrylionTab.Padding = new System.Windows.Forms.Padding(3); + this.AngrylionTab.Size = new System.Drawing.Size(572, 343); + this.AngrylionTab.TabIndex = 9; + this.AngrylionTab.Text = "Angrylion"; + this.AngrylionTab.UseVisualStyleBackColor = true; + // // GLideN64Tab // this.GLideN64Tab.Controls.Add(this.GlideN64PropertyGrid); @@ -440,6 +456,13 @@ this.GlideN64PropertyGrid.Size = new System.Drawing.Size(566, 337); this.GlideN64PropertyGrid.TabIndex = 3; // + // AngrylionPropertyGrid + // + this.AngrylionPropertyGrid.Location = new System.Drawing.Point(3, 3); + this.AngrylionPropertyGrid.Name = "AngrylionPropertyGrid"; + this.AngrylionPropertyGrid.Size = new System.Drawing.Size(566, 337); + this.AngrylionPropertyGrid.TabIndex = 4; + // // N64VideoPluginConfig // this.AcceptButton = this.SaveButton; @@ -505,10 +528,12 @@ private BizHawk.WinForms.Controls.LocLabelEx LabelVideoResolutionX; private System.Windows.Forms.TextBox VideoResolutionYTextBox; private System.Windows.Forms.TextBox VideoResolutionXTextBox; + private System.Windows.Forms.TabPage AngrylionTab; private System.Windows.Forms.TabPage GLideN64Tab; private System.Windows.Forms.PropertyGrid RicePropertyGrid; private System.Windows.Forms.PropertyGrid GlidePropertyGrid; private System.Windows.Forms.PropertyGrid Glide64Mk2PropertyGrid; private System.Windows.Forms.PropertyGrid GlideN64PropertyGrid; + private System.Windows.Forms.PropertyGrid AngrylionPropertyGrid; } } \ No newline at end of file diff --git a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs index 4899f0917f..8dfbbe3784 100644 --- a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs +++ b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs @@ -109,6 +109,7 @@ namespace BizHawk.Client.EmuHawk "Glide64" => PluginType.Glide, "Glide64mk2" => PluginType.GlideMk2, "GLideN64" => PluginType.GLideN64, + "Angrylion" => PluginType.Angrylion, _ => _ss.VideoPlugin }; @@ -151,6 +152,9 @@ namespace BizHawk.Client.EmuHawk case PluginType.GLideN64: PluginComboBox.Text = "GLideN64"; break; + case PluginType.Angrylion: + PluginComboBox.Text = "Angrylion"; + break; } VideoResolutionXTextBox.Text = _s.VideoSizeX.ToString(); @@ -174,6 +178,7 @@ namespace BizHawk.Client.EmuHawk GlidePropertyGrid.SelectedObject = _ss.GlidePlugin; Glide64Mk2PropertyGrid.SelectedObject = _ss.Glide64mk2Plugin; GlideN64PropertyGrid.SelectedObject = _ss.GLideN64Plugin; + AngrylionPropertyGrid.SelectedObject = _ss.AngrylionPlugin; } private void PluginComboBox_SelectedIndexChanged(object sender, EventArgs e) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs index f6a90cc411..997c67ecf0 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs @@ -113,6 +113,12 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 // break; } + // angrylion needs LLE RSP + if (_syncSettings.VideoPlugin is PluginType.Angrylion) + { + rsp = "mupen64plus-rsp-cxd4-sse2.dll"; + } + api.AttachPlugin(mupen64plusApi.m64p_plugin_type.M64PLUGIN_RSP, rsp); InitMemoryDomains(); diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.Angrylion.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.Angrylion.cs new file mode 100644 index 0000000000..7cb3816743 --- /dev/null +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.Angrylion.cs @@ -0,0 +1,36 @@ +using System.ComponentModel; +using BizHawk.Emulation.Common; + +namespace BizHawk.Emulation.Cores.Nintendo.N64 +{ + public partial class N64SyncSettings + { + public class N64AngrylionPluginSettings : IPluginSettings + { + public N64AngrylionPluginSettings() + { + BobDeinterlacer = true; + } + + [DefaultValue(true)] + [DisplayName("Use Bob Deinterlacer")] + [Description("Uses Bob Deinterlacer if True, else a Weave Deinterlacer is used")] + [Category("Video")] + public bool BobDeinterlacer { get; set; } + + public N64AngrylionPluginSettings Clone() + { + return (N64AngrylionPluginSettings)MemberwiseClone(); + } + + public void FillPerGameHacks(GameInfo game) + { + } + + public PluginType GetPluginType() + { + return PluginType.Angrylion; + } + } + } +} diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs index 4af3fe2140..ead3d5af54 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs @@ -27,6 +27,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 GlidePlugin = new N64GlidePluginSettings(); Glide64mk2Plugin = new N64Glide64mk2PluginSettings(); GLideN64Plugin = new N64GLideN64PluginSettings(); + AngrylionPlugin = new N64AngrylionPluginSettings(); } public CoreType Core { get; set; } @@ -41,6 +42,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 public N64GlidePluginSettings GlidePlugin { get; private set; } public N64Glide64mk2PluginSettings Glide64mk2Plugin { get; private set; } public N64GLideN64PluginSettings GLideN64Plugin { get; private set; } + public N64AngrylionPluginSettings AngrylionPlugin { get; private set; } public N64SyncSettings Clone() { @@ -70,6 +72,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 case PluginType.GlideMk2: ips = Glide64mk2Plugin.Clone(); break; case PluginType.Rice: ips = RicePlugin.Clone(); break; case PluginType.GLideN64: ips = GLideN64Plugin.Clone(); break; + case PluginType.Angrylion: ips = AngrylionPlugin.Clone(); break; } ips.FillPerGameHacks(game); @@ -115,7 +118,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 FormerlyJabo, [Description("GLideN64")] - GLideN64 + GLideN64, + + [Description("Angrylion")] + Angrylion, } public interface IPluginSettings diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusCoreApi.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusCoreApi.cs index fa1630a610..cce4af9706 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusCoreApi.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusCoreApi.cs @@ -674,6 +674,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64.NativeApi { m64pConfigOpenSection("Video-GLideN64", ref video_plugin_section); } + else if (video_settings.Plugin == PluginType.Angrylion) + { + m64pConfigOpenSection("Video-Angrylion", ref video_plugin_section); + } else { return; diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusVideoApi.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusVideoApi.cs index c404ed15e8..3f6d073d85 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusVideoApi.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/NativeApi/mupen64plusVideoApi.cs @@ -56,6 +56,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64.NativeApi case PluginType.GLideN64: videoplugin = "mupen64plus-video-GLideN64.dll"; break; + case PluginType.Angrylion: + videoplugin = "mupen64plus-video-angrylion-rdp.dll"; + break; } GfxDll = core.AttachPlugin(mupen64plusApi.m64p_plugin_type.M64PLUGIN_GFX,