aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/plugins.cpp1
-rw-r--r--sound/mididrv.cpp2
-rw-r--r--sound/softsynth/cms.cpp26
3 files changed, 28 insertions, 1 deletions
diff --git a/base/plugins.cpp b/base/plugins.cpp
index f5e51f3228..ab660488d3 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -206,6 +206,7 @@ public:
LINK_PLUGIN(ADLIB)
LINK_PLUGIN(PCSPK)
LINK_PLUGIN(PCJR)
+ LINK_PLUGIN(CMS)
#ifndef DISABLE_SID
LINK_PLUGIN(C64)
#endif
diff --git a/sound/mididrv.cpp b/sound/mididrv.cpp
index b93df19558..f4cf75ca73 100644
--- a/sound/mididrv.cpp
+++ b/sound/mididrv.cpp
@@ -58,7 +58,7 @@ const byte MidiDriver::_gmToMt32[128] = {
static const uint32 GUIOMapping[] = {
MT_PCSPK, Common::GUIO_MIDIPCSPK,
- /*MDT_CMS, Common::GUIO_MIDICMS,*/
+ MT_CMS, Common::GUIO_MIDICMS,
MT_PCJR, Common::GUIO_MIDIPCJR,
MT_ADLIB, Common::GUIO_MIDIADLIB,
MT_C64, Common::GUIO_MIDIC64,
diff --git a/sound/softsynth/cms.cpp b/sound/softsynth/cms.cpp
index 974db0dea8..271268a6d9 100644
--- a/sound/softsynth/cms.cpp
+++ b/sound/softsynth/cms.cpp
@@ -23,8 +23,10 @@
*/
#include "sound/softsynth/cms.h"
+#include "sound/null.h"
#include "common/textconsole.h"
+#include "common/translation.h"
// CMS/Gameblaster Emulation taken from DosBox
@@ -341,3 +343,27 @@ void CMSEmulator::portWriteIntern(int chip, int offset, int data) {
}
}
+class CMSMusicPlugin : public NullMusicPlugin {
+public:
+ const char *getName() const {
+ return _s("Creative Music System Emulator");
+ }
+
+ const char *getId() const {
+ return "cms";
+ }
+
+ MusicDevices getDevices() const;
+};
+
+MusicDevices CMSMusicPlugin::getDevices() const {
+ MusicDevices devices;
+ devices.push_back(MusicDevice(this, "", MT_CMS));
+ return devices;
+}
+
+//#if PLUGIN_ENABLED_DYNAMIC(CMS)
+ //REGISTER_PLUGIN_DYNAMIC(CMS, PLUGIN_TYPE_MUSIC, CMSMusicPlugin);
+//#else
+ REGISTER_PLUGIN_STATIC(CMS, PLUGIN_TYPE_MUSIC, CMSMusicPlugin);
+//#endif