aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2025-03-25 17:34:31 +0300
committerWohlstand <admin@wohlnet.ru>2025-03-25 17:34:31 +0300
commitde4fbb90c70da8a4dcf7d612f75bf5e8177e94bf (patch)
tree673e7e0a3bf8663109e24b5769a211f0b837d0f9
parentb1324a0f1a6ccba2fb0b5144fa26bbb9fd917213 (diff)
parentf265f0183b147818a0e0b046c79db97588138449 (diff)
downloadlibADLMIDI-de4fbb90c70da8a4dcf7d612f75bf5e8177e94bf.tar.gz
libADLMIDI-de4fbb90c70da8a4dcf7d612f75bf5e8177e94bf.tar.bz2
libADLMIDI-de4fbb90c70da8a4dcf7d612f75bf5e8177e94bf.zip
Merge branch 'master' of github.com:Wohlstand/libADLMIDI
-rw-r--r--src/chips/esfmu/esfm.c8
-rw-r--r--utils/winmm_drv/cpl/config_dialog.c1
-rw-r--r--utils/winmm_drv/src/MidiSynth.cpp5
3 files changed, 11 insertions, 3 deletions
diff --git a/src/chips/esfmu/esfm.c b/src/chips/esfmu/esfm.c
index 023a6ee..9a3e686 100644
--- a/src/chips/esfmu/esfm.c
+++ b/src/chips/esfmu/esfm.c
@@ -1762,6 +1762,10 @@ ESFM_process_feedback(esfm_chip *chip)
uint3 mod_in_shift;
uint32_t phase, phase_acc;
uint10 eg_output;
+#if defined(__GNUC__) && defined(__i386__) && !defined(__x86_64__) && !defined(__arm__) && !defined(_ESFMU_DISABLE_ASM_OPTIMIZATIONS)
+ size_t logsinrom_addr;
+ size_t exprom_addr;
+#endif
if (slot->mod_in_level && (chip->native_mode || (slot->in.mod_input == &slot->in.feedback_buf)))
{
@@ -1848,8 +1852,8 @@ ESFM_process_feedback(esfm_chip *chip)
: "cc", "ax", "bx", "cx", "dx", "r8", "r9", "r10", "r11"
);
#elif defined(__GNUC__) && defined(__i386__) && !defined(_ESFMU_DISABLE_ASM_OPTIMIZATIONS)
- size_t logsinrom_addr = (size_t)logsinrom;
- size_t exprom_addr = (size_t)exprom;
+ logsinrom_addr = (size_t)logsinrom;
+ exprom_addr = (size_t)exprom;
asm (
"movzbl %b[wave], %%eax \n\t"
diff --git a/utils/winmm_drv/cpl/config_dialog.c b/utils/winmm_drv/cpl/config_dialog.c
index 1742ab1..8808e6d 100644
--- a/utils/winmm_drv/cpl/config_dialog.c
+++ b/utils/winmm_drv/cpl/config_dialog.c
@@ -55,6 +55,7 @@ static const char * const emulator_type_descriptions[] =
"DOSBox",
"Opal",
"Java OPL3",
+ "ESFMu",
NULL
};
diff --git a/utils/winmm_drv/src/MidiSynth.cpp b/utils/winmm_drv/src/MidiSynth.cpp
index 078d930..cef311f 100644
--- a/utils/winmm_drv/src/MidiSynth.cpp
+++ b/utils/winmm_drv/src/MidiSynth.cpp
@@ -286,8 +286,10 @@ public:
int Start()
{
+ HANDLE renderThread;
getPosWraps = 0;
prevPlayPos = 0;
+
for(UINT i = 0; i < chunks; i++)
{
if(waveOutWrite(hWaveOut, &WaveHdr[i], sizeof(WAVEHDR)) != MMSYSERR_NOERROR)
@@ -297,7 +299,8 @@ public:
}
}
- _beginthread(RenderingThread, 8192 * sizeSample, this);
+ renderThread = (HANDLE)_beginthread(RenderingThread, 8192 * sizeSample, this);
+ SetThreadPriority(renderThread, THREAD_PRIORITY_HIGHEST);
return 0;
}