diff options
Diffstat (limited to 'src/adlmidi_opl3.cpp')
-rw-r--r-- | src/adlmidi_opl3.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp index 7fc7f4e..3e9dcc9 100644 --- a/src/adlmidi_opl3.cpp +++ b/src/adlmidi_opl3.cpp @@ -503,12 +503,14 @@ void OPL3::ChangeVolumeRangesModel(ADLMIDI_VolumeModels volumeModel) } } +#ifndef ADLMIDI_HW_OPL void OPL3::ClearChips() { for(size_t i = 0; i < cardsOP2.size(); i++) cardsOP2[i].reset(NULL); cardsOP2.clear(); } +#endif void OPL3::Reset(int emulator, unsigned long PCM_RATE) { @@ -544,18 +546,19 @@ void OPL3::Reset(int emulator, unsigned long PCM_RATE) }; unsigned fours = NumFourOps; - for(size_t i = 0; i < cardsOP2.size(); ++i) + for(size_t i = 0; i < NumCards; ++i) { +#ifndef ADLMIDI_HW_OPL switch(emulator) { default: #ifndef ADLMIDI_DISABLE_NUKED_EMULATOR - case ADLMIDI_EMU_NUKED: - cardsOP2[i].reset(new NukedOPL3v174()); - break; - case ADLMIDI_EMU_NUKED_8: + case ADLMIDI_EMU_NUKED: /* Latest Nuked OPL3 */ cardsOP2[i].reset(new NukedOPL3()); break; + case ADLMIDI_EMU_NUKED_174: /* Old Nuked OPL3 1.4.7 modified and optimized */ + cardsOP2[i].reset(new NukedOPL3v174()); + break; #endif #ifndef ADLMIDI_DISABLE_DOSBOX_EMULATOR case ADLMIDI_EMU_DOSBOX: @@ -564,6 +567,7 @@ void OPL3::Reset(int emulator, unsigned long PCM_RATE) #endif } cardsOP2[i]->setRate((uint32_t)PCM_RATE); +#endif // ADLMIDI_HW_OPL for(unsigned a = 0; a < 18; ++a) Poke(i, 0xB0 + Channels[a], 0x00); for(unsigned a = 0; a < sizeof(data) / sizeof(*data); a += 2) |