From fa7b2ec441230e5fac45ae4d8b20a54a28bf6532 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 14 May 2014 01:50:36 +0000 Subject: [PATCH] N64 - add the rsp-z64-hlevideo plugin and add backend support for toggling between this and rsp-hle. Still todo: front end to set this --- .../Consoles/Nintendo/N64/N64.cs | 9 +++++++-- .../Consoles/Nintendo/N64/N64SyncSettings.cs | 11 +++++++++++ output/dll/mupen64plus-rsp-z64-hlevideo.dll | Bin 0 -> 58368 bytes 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 output/dll/mupen64plus-rsp-z64-hlevideo.dll diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs index 701cdf15e4..1f5dfa2fd3 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.cs @@ -105,8 +105,13 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 _videoProvider = new N64VideoProvider(api, videosettings); _audioProvider = new N64Audio(api); _inputProvider = new N64Input(api, comm, this._syncSettings.Controllers); - api.AttachPlugin(mupen64plusApi.m64p_plugin_type.M64PLUGIN_RSP, - "mupen64plus-rsp-hle.dll"); + + + string rsp = _syncSettings.RspType == N64SyncSettings.RSPTYPE.Rsp_Hle ? + "mupen64plus-rsp-hle.dll" : + "mupen64plus-rsp-z64-hlevideo.dll"; + + api.AttachPlugin(mupen64plusApi.m64p_plugin_type.M64PLUGIN_RSP, rsp); InitMemoryDomains(); RefreshMemoryCallbacks(); diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs index 7e60238e2c..75271afafd 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64SyncSettings.cs @@ -22,6 +22,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 Dynarec = 2, } + public RSPTYPE RspType = RSPTYPE.Rsp_Hle; + + public enum RSPTYPE + { + [Description("RSP HLE")] + Rsp_Hle = 0, + + [Description("RSP Z64 HLE Video")] + Rsp_Z64_hlevideo = 1 + } + public PLUGINTYPE VidPlugin = PLUGINTYPE.RICE; public int VideoSizeX = 320; public int VideoSizeY = 240; diff --git a/output/dll/mupen64plus-rsp-z64-hlevideo.dll b/output/dll/mupen64plus-rsp-z64-hlevideo.dll new file mode 100644 index 0000000000000000000000000000000000000000..3009047762c51f45b6f4cf9dfa5af9314794d930 GIT binary patch literal 58368 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