[Ohrrpgce] [ohrrpgce/ohrrpgce] Windows 95 - 2000 no longer supported (Issue #1241)
Ralph Versteegen
notifications at github.com
Wed Aug 31 06:45:38 PDT 2022
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/1232960187 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20220831/c690f009/attachment.htm>
More information about the Ohrrpgce
mailing list