From dfda56d8d53ff56943e6f56f2f1cbbc56353dfca Mon Sep 17 00:00:00 2001 From: goyuken Date: Sun, 5 Jan 2014 22:32:49 +0000 Subject: [PATCH] quicknes: support the other included mappers (some aren't enabled by default for whatever reason) --- .../Consoles/Nintendo/QuickNES/LibQuickNES.cs | 5 +++++ .../Consoles/Nintendo/QuickNES/QuickNES.cs | 5 +++++ output/dll/libquicknes.dll | Bin 78336 -> 93184 bytes quicknes/bizinterface.cpp | 5 +++++ 4 files changed, 15 insertions(+) diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs index 909e793572..24a76a5e43 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/LibQuickNES.cs @@ -10,6 +10,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES { public const string dllname = "libquicknes.dll"; + /// + /// setup extra mappers. should be done before anything else + /// + [DllImport(dllname, CallingConvention = CallingConvention.Cdecl)] + public static extern void qn_setup_mappers(); /// /// create a new quicknes context /// diff --git a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs index 0e342e6fd8..2ccc8e37a3 100644 --- a/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs +++ b/BizHawk.Emulation.Cores/Consoles/Nintendo/QuickNES/QuickNES.cs @@ -9,6 +9,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES { public class QuickNES : IEmulator, IVideoProvider, ISyncSoundProvider { + static QuickNES() + { + LibQuickNES.qn_setup_mappers(); + } + public QuickNES(CoreComm nextComm, byte[] Rom) { CoreComm = nextComm; diff --git a/output/dll/libquicknes.dll b/output/dll/libquicknes.dll index 1e9392ab7b5ebde115110f9dd03c1f68782fc184..45183ad77c68fbe388f084f1187bb5f324bc5a44 100644 GIT binary patch delta 31994 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 Bz;6Hm diff --git a/quicknes/bizinterface.cpp b/quicknes/bizinterface.cpp index 2f3b29aaf5..36d430e25d 100644 --- a/quicknes/bizinterface.cpp +++ b/quicknes/bizinterface.cpp @@ -19,6 +19,11 @@ public: #define EXPORT extern "C" __declspec(dllexport) +EXPORT void qn_setup_mappers() +{ + register_optional_mappers(); +} + EXPORT Nes_Emu *qn_new() { return new Nes_Emu();