From 8a0a939a3281a31fc17327d24f0a4c0975a1b9fa Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Tue, 10 Apr 2018 02:15:03 +0300 Subject: [Experimental] Added support for emulation core switching in real time! Due to clunky playback on updated Nuked OPL3 emulator v 1.8, I kept the Nuked OPL3 1.7.4 work in parallel and be a separated switchable emulator. --- src/adlmidi_private.hpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'src/adlmidi_private.hpp') diff --git a/src/adlmidi_private.hpp b/src/adlmidi_private.hpp index 8523343..82a6627 100644 --- a/src/adlmidi_private.hpp +++ b/src/adlmidi_private.hpp @@ -112,13 +112,8 @@ typedef int32_t ssize_t; #endif #include "fraction.hpp" - #ifndef ADLMIDI_HW_OPL -#ifdef ADLMIDI_USE_DOSBOX_OPL -#include "dbopl.h" -#else -#include "nukedopl3.h" -#endif +#include "chips/opl_chip_base.h" #endif #include "adldata.hh" @@ -178,11 +173,7 @@ public: char ____padding[4]; ADL_MIDIPlayer *_parent; #ifndef ADLMIDI_HW_OPL -# ifdef ADLMIDI_USE_DOSBOX_OPL - std::vector cards; -# else - std::vector<_opl3_chip> cards; -# endif + std::vector > cardsOP2; #endif private: std::vector ins; // index to adl[], cached, needed by Touch() @@ -268,7 +259,8 @@ public: void updateFlags(); void updateDeepFlags(); void ChangeVolumeRangesModel(ADLMIDI_VolumeModels volumeModel); - void Reset(unsigned long PCM_RATE); + void ClearChips(); + void Reset(int emulator, unsigned long PCM_RATE); }; @@ -712,6 +704,7 @@ public: struct Setup { + int emulator; unsigned int AdlBank; unsigned int NumFourOps; unsigned int NumCards; -- cgit v1.2.3