aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt9
-rw-r--r--android/jni/Android.mk19
-rw-r--r--fm_banks/adldata-cache.datbin541363 -> 541363 bytes
-rw-r--r--fm_banks/wopl_files/DMXOPL3-by-sneakernets-GS.woplbin101803 -> 118767 bytes
-rw-r--r--src/adldata.cpp155
-rw-r--r--src/adlmidi_midiplay.cpp4
6 files changed, 107 insertions, 80 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0a8a201..a3229d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required (VERSION 2.8.11)
+cmake_minimum_required (VERSION 3.2)
project (libADLMIDI)
#===========================================================================================
@@ -266,6 +266,13 @@ if(NOT libADLMIDI_STATIC AND NOT libADLMIDI_SHARED)
You must enable at least one of them!")
endif()
+add_library(ADLMIDI INTERFACE)
+if(libADLMIDI_SHARED)
+ target_link_libraries(ADLMIDI INTERFACE ADLMIDI_shared)
+else()
+ target_link_libraries(ADLMIDI INTERFACE ADLMIDI_static)
+endif()
+
if(WITH_MIDIPLAY)
if(NOT MSDOS AND NOT DJGPP AND NOT MIDIPLAY_WAVE_ONLY)
find_library(SDL2_LIBRARY SDL2 REQUIRED)
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index 834379c..26bd8eb 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -10,9 +10,20 @@ LOCAL_C_INCLUDES := \
LOCAL_ARM_MODE := arm
LOCAL_CPP_FEATURES := exceptions
LOCAL_LDLIBS := -llog
-LOCAL_SRC_FILES := src/adldata.cpp src/adlmidi.cpp src/dbopl.cpp src/nukedopl3.c \
- src/adlmidi_load.cpp src/adlmidi_midiplay.cpp \
- src/adlmidi_opl3.cpp src/adlmidi_private.cpp \
- src/adlmidi_xmi2mid.c src/adlmidi_mus2mid.c
+LOCAL_SRC_FILES := src/adldata.cpp \
+ src/adlmidi_load.cpp \
+ src/adlmidi_midiplay.cpp \
+ src/adlmidi_mus2mid.c \
+ src/adlmidi_opl3.cpp \
+ src/adlmidi_private.cpp \
+ src/adlmidi_xmi2mid.c \
+ src/adlmidi.cpp \
+ src/chips/dosbox_opl3.cpp \
+ src/chips/nuked_opl3_v174.cpp \
+ src/chips/nuked_opl3.cpp \
+ src/chips/opl_chip_base.cpp \
+ src/chips/dosbox/dbopl.cpp \
+ src/chips/nuked/nukedopl3_174.c \
+ src/chips/nuked/nukedopl3.c
include $(BUILD_SHARED_LIBRARY)
diff --git a/fm_banks/adldata-cache.dat b/fm_banks/adldata-cache.dat
index 5ee52f9..2925a7d 100644
--- a/fm_banks/adldata-cache.dat
+++ b/fm_banks/adldata-cache.dat
Binary files differ
diff --git a/fm_banks/wopl_files/DMXOPL3-by-sneakernets-GS.wopl b/fm_banks/wopl_files/DMXOPL3-by-sneakernets-GS.wopl
index ca02723..58362a5 100644
--- a/fm_banks/wopl_files/DMXOPL3-by-sneakernets-GS.wopl
+++ b/fm_banks/wopl_files/DMXOPL3-by-sneakernets-GS.wopl
Binary files differ
diff --git a/src/adldata.cpp b/src/adldata.cpp
index 1556f4d..871c87e 100644
--- a/src/adldata.cpp
+++ b/src/adldata.cpp
@@ -4,7 +4,7 @@
* FROM A NUMBER OF SOURCES, MOSTLY PC GAMES.
* PREPROCESSED, CONVERTED, AND POSTPROCESSED OFF-SCREEN.
*/
-const adldata adl[4423] =
+const adldata adl[4430] =
{ // ,---------+-------- Wave select settings
// | ,-------ч-+------ Sustain/release rates
// | | ,-----ч-ч-+---- Attack/decay rates
@@ -4357,13 +4357,20 @@ const adldata adl[4423] =
{ 0x2F7F602,0x0F8F802, 0x00,0x88, 0xE, +12 },
{ 0x05476C1,0x30892C5, 0x80,0x08, 0x0, +0 },
{ 0x05477C1,0x30892C5, 0x00,0x08, 0xA, -2 },
- { 0x005C604,0x005C604, 0x08,0x00, 0x1, +0 },
- { 0x509F902,0x057AB07, 0x03,0x07, 0xC, +12 },
+ { 0x007C604,0x007C604, 0x08,0x08, 0x1, +0 },
+ { 0x201F302,0x057AB09, 0x03,0x07, 0xC, +12 },
{ 0x254F307,0x307F905, 0x04,0x08, 0x6, -5 },
{ 0x254F307,0x207F905, 0x04,0x08, 0x8, +0 },
- { 0x509F912,0x057AB07, 0x03,0x07, 0xC, +12 },
+ { 0x006C604,0x007C604, 0x08,0x08, 0x1, +0 },
+ { 0x201F312,0x057AB09, 0x03,0x07, 0xC, +12 },
{ 0x254D307,0x3288905, 0x04,0x03, 0xA, -5 },
- { 0x509F902,0x057AB07, 0x03,0x07, 0x0, +12 },
+ { 0x0015500,0x007C716, 0x0C,0x00, 0x0, +0 },
+ { 0x201F312,0x057AB09, 0x00,0x07, 0xC, +12 },
+ { 0x0015500,0x007C718, 0x0C,0x00, 0x0, +0 },
+ { 0x001F312,0x047BB05, 0x03,0x07, 0xC, +12 },
+ { 0x0015500,0x007C71B, 0x0C,0x00, 0x0, +0 },
+ { 0x201F312,0x047BB09, 0x03,0x07, 0xC, +12 },
+ { 0x0015500,0x007C71F, 0x0C,0x00, 0x0, +0 },
{ 0x210F509,0x605FE05, 0x8A,0x8A, 0xE, +12 },
{ 0x400F509,0x605FE05, 0x07,0x8A, 0xA, +12 },
{ 0x2E1F11E,0x3F3F318, 0x04,0x00, 0x8, +0 },
@@ -8921,76 +8928,76 @@ const struct adlinsdata adlins[4549] =
{4336,4335, 25, 1, 33, 33,0.000000 },
{4337,4338, 61, 1, 40, 40,0.000000 },
{4339,4340, 37, 1, 53, 53,0.000000 },
- {4341,4342, 15, 1, 320, 320,0.000000 },
+ {4341,4342, 15, 1, 80, 80,0.000000 },
{4343,4344, 48, 1, 73, 73,-1.906250 },
- {4341,4345, 19, 1, 320, 320,0.000000 },
- {4346,4346, 48, 0, 53, 53,0.000000 },
- {4341,4342, 22, 1, 353, 353,0.000000 },
- {4341,4342, 24, 1, 360, 360,0.000000 },
- {4341,4347, 27, 1, 393, 393,0.000000 },
- {4341,4342, 31, 1, 380, 380,0.000000 },
- {4348,4349, 60, 1, 246, 246,0.031250 },
- {4350,4350, 70, 0, 340, 340,0.000000 },
- {4351,4352, 80, 1, 106, 106,0.125000 },
- {4353,4353, 58, 0, 73, 73,0.000000 },
- {4354,4355, 31, 1, 313, 313,0.000000 },
- {4356,4356, 61, 0, 253, 253,0.000000 },
- {4357,4358, 41, 1, 100, 100,0.000000 },
- {4359,4360, 35, 1, 160, 160,0.000000 },
- {4361,4362, 29, 1, 40, 40,0.000000 },
- {4363,4364, 41, 1, 166, 166,0.000000 },
- {4363,4364, 37, 1, 160, 160,0.000000 },
- {4365,4366, 54, 1, 80, 80,0.000000 },
- {4365,4367, 48, 1, 80, 80,0.000000 },
- {4368,4369, 77, 1, 53, 53,0.000000 },
- {4370,4371, 72, 1, 46, 46,0.000000 },
- {4372,4372, 40, 0, 140, 140,0.000000 },
- {4373,4373, 38, 0, 73, 73,0.000000 },
- {4374,4374, 36, 0, 533, 533,0.000000 },
- {4375,4376, 60, 1, 26, 26,0.000000 },
- {4376,4377, 60, 1, 26, 26,0.000000 },
- {4378,4378, 73, 0, 60, 60,0.000000 },
- {4379,4380, 68, 1, 40, 40,0.000000 },
- {4381,4382, 18, 1, 60, 60,0.000000 },
- {4383,4384, 18, 1, 106, 106,0.000000 },
- {4385,4385, 90, 0, 80, 80,0.000000 },
- {4386,4386, 90, 0, 306, 306,0.000000 },
- {4387,4388, 64, 1, 233, 233,0.031250 },
- {4389,4390, 80, 1, 140, 140,0.031250 },
- {4391,4392, 64, 1, 606, 606,0.000000 },
- {4393,4393, 67, 0, 20, 20,0.000000 },
- {4394,4395, 50, 1, 53, 53,0.000000 },
- {4396,4396, 36, 0, 66, 66,0.000000 },
- {4397,4397, 0, 0, 40000, 20,0.000000 },
- {4398,4398, 0, 0, 40000, 0,0.000000 },
- {4399,4399, 0, 0, 360, 360,0.000000 },
- {4400,4400, 0, 0, 586, 586,0.000000 },
- {4401,4401, 0, 0, 40000, 0,0.000000 },
- {4402,4402, 0, 0, 40000, 0,0.000000 },
- {4403,4403, 0, 0, 40000, 0,0.000000 },
- {4404,4404, 0, 0, 40000, 6,0.000000 },
+ {4345,4346, 19, 1, 120, 120,0.000000 },
+ {4347,4347, 48, 0, 53, 53,0.000000 },
+ {4348,4349, 15, 1, 33, 33,0.000000 },
+ {4350,4351, 12, 1, 33, 33,0.000000 },
+ {4352,4353, 11, 1, 33, 33,0.000000 },
+ {4354,4353, 8, 1, 40, 40,0.000000 },
+ {4355,4356, 60, 1, 246, 246,0.031250 },
+ {4357,4357, 70, 0, 340, 340,0.000000 },
+ {4358,4359, 80, 1, 106, 106,0.125000 },
+ {4360,4360, 58, 0, 73, 73,0.000000 },
+ {4361,4362, 31, 1, 313, 313,0.000000 },
+ {4363,4363, 61, 0, 253, 253,0.000000 },
+ {4364,4365, 41, 1, 100, 100,0.000000 },
+ {4366,4367, 35, 1, 160, 160,0.000000 },
+ {4368,4369, 29, 1, 40, 40,0.000000 },
+ {4370,4371, 41, 1, 166, 166,0.000000 },
+ {4370,4371, 37, 1, 160, 160,0.000000 },
+ {4372,4373, 54, 1, 80, 80,0.000000 },
+ {4372,4374, 48, 1, 80, 80,0.000000 },
+ {4375,4376, 77, 1, 53, 53,0.000000 },
+ {4377,4378, 72, 1, 46, 46,0.000000 },
+ {4379,4379, 40, 0, 140, 140,0.000000 },
+ {4380,4380, 38, 0, 73, 73,0.000000 },
+ {4381,4381, 36, 0, 533, 533,0.000000 },
+ {4382,4383, 60, 1, 26, 26,0.000000 },
+ {4383,4384, 60, 1, 26, 26,0.000000 },
+ {4385,4385, 73, 0, 60, 60,0.000000 },
+ {4386,4387, 68, 1, 40, 40,0.000000 },
+ {4388,4389, 18, 1, 60, 60,0.000000 },
+ {4390,4391, 18, 1, 106, 106,0.000000 },
+ {4392,4392, 90, 0, 80, 80,0.000000 },
+ {4393,4393, 90, 0, 306, 306,0.000000 },
+ {4394,4395, 64, 1, 233, 233,0.031250 },
+ {4396,4397, 80, 1, 140, 140,0.031250 },
+ {4398,4399, 64, 1, 606, 606,0.000000 },
+ {4400,4400, 67, 0, 20, 20,0.000000 },
+ {4401,4402, 50, 1, 53, 53,0.000000 },
+ {4403,4403, 36, 0, 66, 66,0.000000 },
+ {4404,4404, 0, 0, 40000, 20,0.000000 },
{4405,4405, 0, 0, 40000, 0,0.000000 },
- {4406,4406, 0, 0, 146, 146,0.000000 },
- {4406,4406, 73, 0, 886, 886,0.000000 },
- {4407,4407, 0, 0, 40, 0,0.000000 },
- {4408,4408, 0, 0, 486, 0,0.000000 },
- {4409,4409, 0, 0, 1226, 1226,0.000000 },
- {4410,4410, 0, 0, 1480, 1480,0.000000 },
- {4411,4411, 0, 0, 46, 46,0.000000 },
- {4412,4412, 0, 0, 126, 126,0.000000 },
- {4412,4412, 12, 0, 106, 106,0.000000 },
- {4413,4413, 0, 0, 160, 160,0.000000 },
- {4413,4413, 1, 0, 153, 153,0.000000 },
- {4414,4414, 0, 0, 20, 20,0.000000 },
- {4414,4414, 23, 0, 26, 26,0.000000 },
- {4415,4415, 0, 0, 140, 140,0.000000 },
- {4416,4416, 0, 0, 486, 486,0.000000 },
- {4417,4417, 0, 0, 40000, 13,0.000000 },
- {4418,4418, 0, 0, 40000, 0,0.000000 },
- {4419,4419, 0, 0, 1226, 1226,0.000000 },
- {4420,4420, 0, 0, 766, 766,0.000000 },
- {4421,4421, 0, 0, 93, 93,0.000000 },
- {4422,4422, 0, 2, 40000, 0,0.000000 },
+ {4406,4406, 0, 0, 360, 360,0.000000 },
+ {4407,4407, 0, 0, 586, 586,0.000000 },
+ {4408,4408, 0, 0, 40000, 0,0.000000 },
+ {4409,4409, 0, 0, 40000, 0,0.000000 },
+ {4410,4410, 0, 0, 40000, 0,0.000000 },
+ {4411,4411, 0, 0, 40000, 6,0.000000 },
+ {4412,4412, 0, 0, 40000, 0,0.000000 },
+ {4413,4413, 0, 0, 146, 146,0.000000 },
+ {4413,4413, 73, 0, 886, 886,0.000000 },
+ {4414,4414, 0, 0, 40, 0,0.000000 },
+ {4415,4415, 0, 0, 486, 0,0.000000 },
+ {4416,4416, 0, 0, 1226, 1226,0.000000 },
+ {4417,4417, 0, 0, 1480, 1480,0.000000 },
+ {4418,4418, 0, 0, 46, 46,0.000000 },
+ {4419,4419, 0, 0, 126, 126,0.000000 },
+ {4419,4419, 12, 0, 106, 106,0.000000 },
+ {4420,4420, 0, 0, 160, 160,0.000000 },
+ {4420,4420, 1, 0, 153, 153,0.000000 },
+ {4421,4421, 0, 0, 20, 20,0.000000 },
+ {4421,4421, 23, 0, 26, 26,0.000000 },
+ {4422,4422, 0, 0, 140, 140,0.000000 },
+ {4423,4423, 0, 0, 486, 486,0.000000 },
+ {4424,4424, 0, 0, 40000, 13,0.000000 },
+ {4425,4425, 0, 0, 40000, 0,0.000000 },
+ {4426,4426, 0, 0, 1226, 1226,0.000000 },
+ {4427,4427, 0, 0, 766, 766,0.000000 },
+ {4428,4428, 0, 0, 93, 93,0.000000 },
+ {4429,4429, 0, 2, 40000, 0,0.000000 },
};
@@ -10487,6 +10494,6 @@ const AdlBankSetup adlbanksetup[74] =
{3, 0, 0, 0, 0}, //Bank 69, TMB (Blood)
{3, 0, 0, 0, 0}, //Bank 70, TMB (Lee)
{3, 0, 0, 0, 0}, //Bank 71, TMB (Nam)
- {1, 0, 0, 0, 0}, //Bank 72, WOPL (DMXOPL3 bank by Sneakernets)
+ {0, 0, 0, 0, 0}, //Bank 72, WOPL (DMXOPL3 bank by Sneakernets)
{1, 0, 0, 0, 0} //Bank 73, EA (Cartooners)
};
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp
index ea40d50..80f36ce 100644
--- a/src/adlmidi_midiplay.cpp
+++ b/src/adlmidi_midiplay.cpp
@@ -2245,7 +2245,9 @@ void MIDIplay::PrepareAdlChannelForNewNote(size_t c, const MIDIchannel::NoteInfo
opl.NoteOff(c);
}
-void MIDIplay::KillOrEvacuate(size_t from_channel, AdlChannel::users_t::iterator j, MIDIplay::MIDIchannel::activenoteiterator i)
+void MIDIplay::KillOrEvacuate(size_t from_channel,
+ AdlChannel::users_t::iterator j,
+ MIDIplay::MIDIchannel::activenoteiterator i)
{
// Before killing the note, check if it can be
// evacuated to another channel as an arpeggio