Game/Custom
--------------

As well as `IsDebuggerPresent`, winpthreads also uses `SetProcessAffinityMask` 
& `TryEnterCriticalSection` which are missing in kernel32.dll, and the latter 
can't be removed.

Now I understand that the 'win32' threading support in mingw-w64 is the 
original one and supports all 32-bit Windows, while 'posix' threading 
(winpthreads) is a recent addition [which is necessary to 
support](https://stackoverflow.com/questions/17242516/mingw-w64-threads-posix-vs-win32/30390278#30390278)
 C++11 mutexes and threads, but has higher system requirements. (It's pulled in 
by libmodplug which is C++. BTW in our C++ code I used FB mutexes wrapped in a 
C++ class rather than C++11 <mutex>, see `mutex.hpp`) That's why mxe switched 
to posix threads by default in 2019. I compiled the previous SDL_mixer.dll that 
worked on Win95 with mxe back in 2017. Also, back then, official FreeBASIC 1.06 
builds were built with a mingw-w64 toolchain that also used win32 threads, 
although Fufluns didn't use them.

mxe can be compiled with win32 rather than posix threads with `make 
MXE_TARGETS=i686-w64-mingw32.static.win32`.

It doesn't feel like a brilliant idea to mix libraries built with two 
toolchains that use different ABIs but we were already doing it anyway. It 
seems it would only be an issue if attempting to link together C++ code or code 
that passed around pthread objects compiled with different toolchains. (Note 
SDL_mixer itself doesn't use libpthread, it uses SDL's mutex functions, which 
are directly implemented on winapi. It should be fine to use multiple threading 
libraries in the same executable like that).

So I recompiled SDL_mixer.dll with a `i686-w64-mingw32.static.win32` mxe 
toolchain but found that on Win95 it froze when switching away from a MIDI 
track. That was caused by the fix for #1060 which [I 
backported](https://github.com/rversteegen/SDL_mixer/commit/12c46b1d8361a58c6eb1d19aa354ba6f7a92785e)
 from SDL_mixer 2.6 to 1.2, so I've backed that out. Disappointing. I wonder 
whether the fix is wrong, or it needs changes for SDL_mixer 1.2, or it's caused 
by my custom MIDI synthesizer, ... 

hspeak
---------

As for hspeak not running, [Windows 9x 
Notes](https://rpg.hamsterrepublic.com/ohrrpgce/Windows_9x_Notes) on the wiki 
mentions that it runs on Win 98 and later Win 95 versions, but not the one I 
have (I misspoke earlier, I have "4.00.950 C" not OSR2). So I'll ignore that.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/ohrrpgce/ohrrpgce/issues/1241#issuecomment-1232960187
You are receiving this because you are subscribed to this thread.

Message ID: <ohrrpgce/ohrrpgce/issues/1241/1232960...@github.com>
_______________________________________________
Ohrrpgce mailing list
ohrrpgce@lists.motherhamster.org
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org

Reply via email to