aboutsummaryrefslogtreecommitdiff
path: root/src/chips
diff options
context:
space:
mode:
Diffstat (limited to 'src/chips')
-rw-r--r--src/chips/dosbox/dbopl.h2
-rw-r--r--src/chips/dosbox_opl3.cpp5
-rw-r--r--src/chips/dosbox_opl3.h2
3 files changed, 9 insertions, 0 deletions
diff --git a/src/chips/dosbox/dbopl.h b/src/chips/dosbox/dbopl.h
index 89d2019..b113734 100644
--- a/src/chips/dosbox/dbopl.h
+++ b/src/chips/dosbox/dbopl.h
@@ -286,5 +286,7 @@ struct Handler {
void Init( Bitu rate );
};
+// Pre-Initialize internal tables
+void InitTables(void);
} //Namespace
diff --git a/src/chips/dosbox_opl3.cpp b/src/chips/dosbox_opl3.cpp
index f192930..fa30e68 100644
--- a/src/chips/dosbox_opl3.cpp
+++ b/src/chips/dosbox_opl3.cpp
@@ -37,6 +37,11 @@ DosBoxOPL3::~DosBoxOPL3()
delete chip_r;
}
+void DosBoxOPL3::globalPreInit()
+{
+ DBOPL::InitTables();
+}
+
void DosBoxOPL3::setRate(uint32_t rate)
{
OPLChipBaseBufferedT::setRate(rate);
diff --git a/src/chips/dosbox_opl3.h b/src/chips/dosbox_opl3.h
index 765fd40..9f88b95 100644
--- a/src/chips/dosbox_opl3.h
+++ b/src/chips/dosbox_opl3.h
@@ -30,6 +30,8 @@ public:
DosBoxOPL3();
~DosBoxOPL3() override;
+ static void globalPreInit();
+
bool canRunAtPcmRate() const override { return true; }
void setRate(uint32_t rate) override;
void reset() override;