diff options
author | Wohlstand <admin@wohlnet.ru> | 2025-03-29 23:11:07 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2025-03-29 23:11:56 +0300 |
commit | a37298e7bed28752e8dcbe8e37e355fe47bf5e99 (patch) | |
tree | d97e76f8c1acfd43626f8d1a0496090c32ca4fd6 /utils | |
parent | e92a4d7285197ab2868aa36f975d73ceee915bea (diff) | |
download | libADLMIDI-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.cpp | 27 | ||||
-rw-r--r-- | utils/vlc_codec/libadlmidi.c | 17 | ||||
-rw-r--r-- | utils/winmm_drv/cpl/config_dialog.c | 43 |
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; |