aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2025-03-29 23:11:07 +0300
committerWohlstand <admin@wohlnet.ru>2025-03-29 23:11:56 +0300
commita37298e7bed28752e8dcbe8e37e355fe47bf5e99 (patch)
treed97e76f8c1acfd43626f8d1a0496090c32ca4fd6 /utils
parente92a4d7285197ab2868aa36f975d73ceee915bea (diff)
downloadlibADLMIDI-a37298e7bed28752e8dcbe8e37e355fe47bf5e99.tar.gz
libADLMIDI-a37298e7bed28752e8dcbe8e37e355fe47bf5e99.tar.bz2
libADLMIDI-a37298e7bed28752e8dcbe8e37e355fe47bf5e99.zip
Added support for LLE OPL2 and OPL3 emulators
Kept disabled by default because they are extremely heavy for ordinary processors.
Diffstat (limited to 'utils')
-rw-r--r--utils/midiplay/adlmidiplay.cpp27
-rw-r--r--utils/vlc_codec/libadlmidi.c17
-rw-r--r--utils/winmm_drv/cpl/config_dialog.c43
3 files changed, 86 insertions, 1 deletions
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp
index fff74d5..443327d 100644
--- a/utils/midiplay/adlmidiplay.cpp
+++ b/utils/midiplay/adlmidiplay.cpp
@@ -1449,12 +1449,35 @@ static struct Args
#ifndef ADLMIDI_ENABLE_HW_DOS
" -fp Enables full-panning stereo support\n"
" --gain <value> Set the gaining factor (default 2.0)\n"
+# ifndef ADLMIDI_DISABLE_NUKED_EMULATOR
" --emu-nuked Uses Nuked OPL3 v 1.8 emulator\n"
" --emu-nuked7 Uses Nuked OPL3 v 1.7.4 emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_DOSBOX_EMULATOR
" --emu-dosbox Uses DosBox 0.74 OPL3 emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_OPAL_EMULATOR
" --emu-opal Uses Opal OPL3 emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_JAVA_EMULATOR
" --emu-java Uses Java OPL3 emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_ESFMU_EMULATOR
" --emu-esfmu Uses ESFMu OPL3/ESFM emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_MAME_OPL2_EMULATOR
+ " --emu-mame-opl2 Uses MAME OPL2 emulator\n"
+# endif
+# ifndef ADLMIDI_DISABLE_YMFM_EMULATOR
+ " --emu-ymfm-opl2 Uses YMFM OPL2 emulator\n"
+ " --emu-ymfm-opl3 Uses YMFM OPL2 emulator\n"
+# endif
+# ifdef ADLMIDI_ENABLE_OPL2_LLE_EMULATOR
+ " --emu-lle-opl2 Uses Nuked OPL2-LLE emulator !!EXTRA HEAVY!!\n"
+# endif
+# ifdef ADLMIDI_ENABLE_OPL3_LLE_EMULATOR
+ " --emu-lle-opl3 Uses Nuked OPL3-LLE emulator !!EXTRA HEAVY!!\n"
+# endif
#else
"\n"
//------------------------------------------------------------------------------|
@@ -1576,6 +1599,10 @@ static struct Args
emulator = ADLMIDI_EMU_YMFM_OPL2;
else if(!std::strcmp("--emu-ymfm-opl3", argv[2]))
emulator = ADLMIDI_EMU_YMFM_OPL3;
+ else if(!std::strcmp("--emu-lle-opl2", argv[2]))
+ emulator = ADLMIDI_EMU_NUKED_OPL2_LLE;
+ else if(!std::strcmp("--emu-lle-opl3", argv[2]))
+ emulator = ADLMIDI_EMU_NUKED_OPL3_LLE;
#endif
#if defined(ADLMIDI_ENABLE_HW_SERIAL) && !defined(OUTPUT_WAVE_ONLY)
diff --git a/utils/vlc_codec/libadlmidi.c b/utils/vlc_codec/libadlmidi.c
index 8946880..49082c7 100644
--- a/utils/vlc_codec/libadlmidi.c
+++ b/utils/vlc_codec/libadlmidi.c
@@ -187,6 +187,14 @@ static const int emulator_type_values[] =
(int)ADLMIDI_EMU_YMFM_OPL2,
(int)ADLMIDI_EMU_YMFM_OPL3,
#endif
+
+#ifdef ADLMIDI_ENABLE_OPL2_LLE_EMULATOR
+ (int)ADLMIDI_EMU_NUKED_OPL2_LLE,
+#endif
+
+#ifdef ADLMIDI_ENABLE_OPL3_LLE_EMULATOR
+ (int)ADLMIDI_EMU_NUKED_OPL3_LLE,
+#endif
};
static const char * const emulator_type_descriptions[] =
{
@@ -219,6 +227,15 @@ static const char * const emulator_type_descriptions[] =
N_("YMFM OPL2"),
N_("YMFM OPL3"),
#endif
+
+#ifdef ADLMIDI_ENABLE_OPL2_LLE_EMULATOR
+ N_("Nuked OPL2-LLE [!EXTRA HEAVY!]"),
+#endif
+
+#ifdef ADLMIDI_ENABLE_OPL3_LLE_EMULATOR
+ N_("Nuked OPL3-LLE [!EXTRA HEAVY!]"),
+#endif
+
NULL
};
diff --git a/utils/winmm_drv/cpl/config_dialog.c b/utils/winmm_drv/cpl/config_dialog.c
index 62a308d..a97e958 100644
--- a/utils/winmm_drv/cpl/config_dialog.c
+++ b/utils/winmm_drv/cpl/config_dialog.c
@@ -8,6 +8,7 @@
#include <stdlib.h>
#include "config_dialog.h"
+#include "adlmidi.h" /* For ENUMs only */
#include "resource.h"
#include "regconfig.h"
@@ -48,6 +49,40 @@ static const char *const channel_allocation_descriptions[] =
NULL
};
+static const enum ADL_Emulator emulator_type_id[] =
+{
+#ifndef ADLMIDI_DISABLE_NUKED_EMULATOR
+ ADLMIDI_EMU_NUKED,
+ ADLMIDI_EMU_NUKED_174,
+#endif
+#ifndef ADLMIDI_DISABLE_DOSBOX_EMULATOR
+ ADLMIDI_EMU_DOSBOX,
+#endif
+#ifndef ADLMIDI_DISABLE_OPAL_EMULATOR
+ ADLMIDI_EMU_OPAL,
+#endif
+#ifndef ADLMIDI_DISABLE_JAVA_EMULATOR
+ ADLMIDI_EMU_JAVA,
+#endif
+#ifndef ADLMIDI_DISABLE_ESFMU_EMULATOR
+ ADLMIDI_EMU_ESFMu,
+#endif
+#ifndef ADLMIDI_DISABLE_MAME_OPL2_EMULATOR
+ ADLMIDI_EMU_MAME_OPL2,
+#endif
+#ifndef ADLMIDI_DISABLE_YMFM_EMULATOR
+ ADLMIDI_EMU_YMFM_OPL2,
+ ADLMIDI_EMU_YMFM_OPL3,
+#endif
+#ifdef ADLMIDI_ENABLE_OPL2_LLE_EMULATOR
+ ADLMIDI_EMU_NUKED_OPL2_LLE,
+#endif
+#ifdef ADLMIDI_ENABLE_OPL3_LLE_EMULATOR
+ ADLMIDI_EMU_NUKED_OPL3_LLE,
+#endif
+ ADLMIDI_EMU_end
+};
+
static const char * const emulator_type_descriptions[] =
{
"Nuked OPL3 1.8",
@@ -61,6 +96,12 @@ static const char * const emulator_type_descriptions[] =
"YMFM OPL2",
"YMFM OPL3",
#endif
+#ifdef ADLMIDI_ENABLE_OPL2_LLE_EMULATOR
+ "Nuked OPL2-LLE [!EXTRA HEAVY!]",
+#endif
+#ifdef ADLMIDI_ENABLE_OPL3_LLE_EMULATOR
+ "Nuked OPL3-LLE [!EXTRA HEAVY!]",
+#endif
NULL
};
@@ -328,7 +369,7 @@ INT_PTR CALLBACK ToolDlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lPar
case IDC_EMULATOR:
if(HIWORD(wParam) == CBN_SELCHANGE)
{
- g_setup.emulatorId = SendMessageW((HWND)lParam, (UINT)CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
+ g_setup.emulatorId = (int)emulator_type_id[SendMessageW((HWND)lParam, (UINT)CB_GETCURSEL, (WPARAM)0, (LPARAM)0)];
}
break;