diff --git a/extern/YMF262-LLE/fmopl3.c b/extern/YMF262-LLE/fmopl3.c index f534ba724..69a4224e0 100644 --- a/extern/YMF262-LLE/fmopl3.c +++ b/extern/YMF262-LLE/fmopl3.c @@ -1442,6 +1442,8 @@ void FMOPL3_Clock(fmopl3_t *chip) int sign; + chip->op_value_debug = chip->op_value; + int accm_a = chip->fsm_out[6] ? 0 : chip->accm_a[1]; accm_a += (chip->pan_l[1][1] & 1) != 0 ? value : 0; chip->accm_a[0] = accm_a; diff --git a/extern/YMF262-LLE/fmopl3.h b/extern/YMF262-LLE/fmopl3.h index 6fcf95f57..051515593 100644 --- a/extern/YMF262-LLE/fmopl3.h +++ b/extern/YMF262-LLE/fmopl3.h @@ -297,6 +297,7 @@ typedef struct int op_mod[2]; int op_value; + int op_value_debug; int accm_a[2]; int accm_b[2]; diff --git a/src/engine/platform/opl.cpp b/src/engine/platform/opl.cpp index fbad13218..dd12d4ac1 100644 --- a/src/engine/platform/opl.cpp +++ b/src/engine/platform/opl.cpp @@ -515,6 +515,18 @@ static const int cycleMapDrums[18]={ 0, 1, 2, 3, 4, 5, 3, 4, 5, }; +static const int cycleMap3[36]={ + 14, 12, 13, 14, 0, 2, 4, 0, 2, + 4, 1, 3, 5, 1, 3, 5, 15, 16, + 17, 15, 16, 17, 6, 8, 10, 6, 8, 10, 7, 9, 11, 7, 9, 11, 12, 13 +}; + +static const int cycleMap3Drums[36]={ + 14, 12, 13, 14, 0, 2, 4, 0, 2, + 4, 1, 3, 5, 1, 3, 5, 15, 19, + 17, 15, 16, 18, 6, 8, 10, 6, 8, 10, 7, 9, 11, 7, 9, 11, 12, 13 +}; + void DivPlatformOPL::acquire_nukedLLE2(short** buf, size_t len) { int chOut[11]; thread_local ymfm::ymfm_output<2> aOut; @@ -664,8 +676,8 @@ void DivPlatformOPL::acquire_nukedLLE3(short** buf, size_t len) { int chOut[20]; for (size_t h=0; h>=1; @@ -746,11 +770,11 @@ void DivPlatformOPL::acquire_nukedLLE3(short** buf, size_t len) { } for (int i=0; i<20; i++) { - if (i>=15 && properDrums) { + /*if (i>=15 && properDrums) { chOut[i]<<=1; } else { chOut[i]<<=2; - } + }*/ if (chOut[i]<-32768) chOut[i]=-32768; if (chOut[i]>32767) chOut[i]=32767; oscBuf[i]->data[oscBuf[i]->needle++]=chOut[i];