7 Commits

Author SHA1 Message Date
jpernst
d931f75d93
Activate OPL3 chips on-demand based on voice pressure (#1911)
* Remove opl_sample_rate variable since it has no practical effect

* Deactivate idle OPL chips
Allocate free OPL voices from active chips before inactive ones

* Add comments for new constants

* Ensure OPL chip LFOs are kept in sync after dormancy

* Check for chip activations before sample generation to preserve sync
2024-09-17 07:47:29 +02:00
jpernst
3bee945f2f
OPL3 Improvements (#1907)
* Use correct OPL3 channel polarity by default

* Support multiple OPL3 chips

* Use native OPL sample rate and allow OpenAL to resample it

* Bind DMX OPL stereo correction to a config variable; default to vanilla

* Consolidate num_opl_chips variables; remove menu item
Use BETWEEN macro for mix clamping

* Disable upper register banks when dmx is in OPL2 mode
2024-09-15 12:18:56 +07:00
Roman Fomin
7bc4f24c7c
fix Thread Sanitizer warnings, music modules refactoring (#1531)
* Fix TSan warnings with Fluidsynth backend

* Convert Fluidsynth and OPL modules to stream_module_t interface

* Remove mutexes from OPL module

* Remove I_OAL_HookMusic/callback

* Move extern declarations to headers
2024-03-01 18:22:04 +07:00
Roman Fomin
a6836b314f
header cleanup using IWYU tool (#1467)
* Forward declaration of structures in headers where possible

* Use M_snprinf instead of sprintf

* Remove D_INTMAX D_INTMIN

* Don't change libtextscreen files

* Add miniz and win32 include directories
2024-02-20 19:26:28 +07:00
Roman Fomin
a075557421
remove win32/stdint.h, add CI build compatible with Windows XP (#617)
* remove win32/stdint.h

* add win32 build to CI

* attempt to fix main.yml

* simplify Build step

* fix syntax

* fix syntax again

* fix indent

* fix cpack directory

* build release configuration

* don't upload SDL libs

* download official FluidSynth library for MSVC WIN32 build

* clean up old MSVC #defines/resources

* set FluidSynth_DIR only on MSVC 32-bit build

* set -verbosity:minimal for msbuild

* fix syntax

* cosmetic changes
2022-06-23 11:56:09 +07:00
Roman Fomin
30c99dd1a5
old compilers support (#400)
* better support of C89 standart

* VC6 fixes

* __pragma attribute works for _MSC_VER > 1400

* use intptr_t for char*

* C89 has no designated initializers

* correct _MSC_VER versions

* fix check

* add stdint.h for old MSVC versions

Taken from https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

* add stdint.h to miniz.h

* make packaging work without Python

* fix window_position initialization

* replace PACKED_STRUCT with i_packed_start.h i_packed_end.h

Thus, we do not use variadic macros from C99.

* undo cmake install changes

* fix icon for VC6

* remove DESCRIPTION and HOMEPAGE_URL from project()

* remove i_packed_start.h and i_packed_end.h

* whitespace fixes

* rename PACKEDPREFIX->PACKED_PREFIX and PACKEDATTR->PACKED_SUFFIX

* MINGW check doesn't work this early

* add check for minimum cmake version for MINGW targets
2021-12-29 08:41:30 +01:00
Fabian Greffrath
3af836ec2e
add OPL emulation from Chocolate Doom (#258)
* add OPL emulation from Chocolate Doom

* get rid of detect_voices

* split the SDL music backend into a separate source file

* add post-realloc() check

* add OPL emulation copyright holders

* add some minimal comments

* add config variable and menu item

* sacrifice PCX format screenshot menu entry
2021-08-25 14:31:12 +02:00