aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_opl3.cpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-08-16 04:30:38 +0300
committerWohlstand <admin@wohlnet.ru>2020-08-16 04:30:38 +0300
commit64496d6a075fa0bdcdd20520a3476970d5146e78 (patch)
treef64c59b3c0a6511c08631b408d5c15350e2edb4b /src/adlmidi_opl3.cpp
parent0848115cd0dcdc06700ad3c74224d36f99d77779 (diff)
parent6813ad7480d14406db0911b0297bbc77436c5496 (diff)
downloadlibADLMIDI-64496d6a075fa0bdcdd20520a3476970d5146e78.tar.gz
libADLMIDI-64496d6a075fa0bdcdd20520a3476970d5146e78.tar.bz2
libADLMIDI-64496d6a075fa0bdcdd20520a3476970d5146e78.zip
Merge branch 'master' into wip-new-embedded-banks
Diffstat (limited to 'src/adlmidi_opl3.cpp')
-rw-r--r--src/adlmidi_opl3.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/adlmidi_opl3.cpp b/src/adlmidi_opl3.cpp
index a5d8f74..18488b3 100644
--- a/src/adlmidi_opl3.cpp
+++ b/src/adlmidi_opl3.cpp
@@ -236,6 +236,13 @@ OPL3::OPL3() :
OPL3::~OPL3()
{
+#ifdef ADLMIDI_HW_OPL
+ silenceAll();
+ writeRegI(0, 0x0BD, 0);
+ writeRegI(0, 0x104, 0);
+ writeRegI(0, 0x105, 0);
+ silenceAll();
+#endif
}
bool OPL3::setupLocked()
@@ -341,19 +348,19 @@ void OPL3::writeReg(size_t chip, uint16_t address, uint8_t value)
unsigned o = address >> 8;
unsigned port = OPLBase + o * 2;
- #ifdef __DJGPP__
+# ifdef __DJGPP__
outportb(port, address);
for(unsigned c = 0; c < 6; ++c) inportb(port);
outportb(port + 1, value);
for(unsigned c = 0; c < 35; ++c) inportb(port);
- #endif
+# endif
- #ifdef __WATCOMC__
+# ifdef __WATCOMC__
outp(port, address);
for(uint16_t c = 0; c < 6; ++c) inp(port);
outp(port + 1, value);
for(uint16_t c = 0; c < 35; ++c) inp(port);
- #endif//__WATCOMC__
+# endif//__WATCOMC__
#else//ADLMIDI_HW_OPL
m_chips[chip]->writeReg(address, value);