1729 Commits

Author SHA1 Message Date
Fabian Greffrath
3483ac7a96 release Woof! 11.1 woof_11.1.0 2023-05-17 10:13:23 +02:00
Fabian Greffrath
daabc909f0 fix 2023-05-17 08:22:07 +02:00
Fabian Greffrath
17bc0fb2c5 simplify invalid patch check on a per-patch base (instead of per-texture)
Also, improve PNG signature check, thanks @kraflab!
2023-05-17 08:18:56 +02:00
Fabian Greffrath
046a4bb83c
detect invalid patches, substitute dummy patch (#1058)
* add map announcements

* detect invalid patches, substitute dummy patch

Fixes crashes with WADs that use a PNG patch as sky, e.g. egregor.wad

* rename function to better reflect its, well, function

* Revert "add map announcements"

This reverts commit b285211727b55567a72d37aa0efdb0babd34f430.

* improve logging
2023-05-16 15:02:23 +02:00
Roman Fomin
c8b0b80545
Changelog update (#1057)
* update CHANGELOG.md

* fix formatting

* fix typos, add missed credit

* Update CHANGELOG.md

---------

Co-authored-by: Fabian Greffrath <fabian@greffrath.com>
2023-05-16 12:39:41 +02:00
Fabian Greffrath
3fd2db56ad
distinguish exit with message on error and on success (#1055) 2023-05-14 16:09:57 +02:00
Joan Bruguera
53024044fd
fix initialization with invalid video_display setting (#1054)
If the `video_display` setting is invalid (for example, due to a
disconnected monitor), it was reset on `I_GetWindowPosition`, which
is called during video initialization.

However, commit dc4182d6d81f ("add exclusive fullscreen to the menu")
reordered the initialization logic. As a result, an invalid
`video_display` can be passed to `SDL_GetCurrentDisplayMode`, causing
Woof to exit before the `video_display` reset logic is run.

Commit cab179594848 ("i_video.c refactor, resize upscaled texture on
window resize") somewhat mitigates the problem, but an exit still
happens when `fullscreen = 1` and `exclusive_fullscreen = 1`.

Fix this by moving the `video_display` reset logic to a separate
function which is called at the very start of video initialization.
2023-05-14 13:00:52 +02:00
Roman Fomin
2754a5d505
Merge pull request #1053 from ceski-1/winmidi-update
winmidi: Compatibility update
2023-05-14 16:17:49 +07:00
ceski
2c327067ea Use stdio.h instead of m_io.h 2023-05-13 14:17:21 -07:00
ceski
ca8dc6c3e1 Add MIDI compatibility levels
winmm_complevel:
0: Vanilla (Emulates DMX MPU-401 mode)
1: Standard (Emulates MS GS Synth) (Default)
2: Full (Send everything to device, including SysEx)
2023-05-13 02:25:27 -07:00
Roman Fomin
0fe727bd82 memio: make read_eof a MEMFILE property, remove printing 2023-05-13 15:34:40 +07:00
ceski
ba358c81a0 Add warning messages for MIDI instrument fallback 2023-05-12 23:44:00 -07:00
ceski
49c8450450 Add SysEx check for MIDI instrument fallback 2023-05-12 23:39:12 -07:00
ceski
4bc11c4371 Simplify reset, part 2
MS GS Synth checks fail when using custom MIDI mappers that hide the true MIDI device name.
2023-05-12 23:25:16 -07:00
ceski
bca0401993 Use consistent data types 2023-05-12 23:00:52 -07:00
ceski
84fe335294 Move meta message handling 2023-05-12 21:55:21 -07:00
ceski
79d6542dae Move SysEx message handling 2023-05-12 21:53:12 -07:00
ceski
e2bf6fb0d8 Move EMIDI message handling 2023-05-12 21:48:19 -07:00
ceski
2a6bcdca72 Clean up channel messages 2023-05-12 21:21:22 -07:00
ceski
02368558b2 Add missing consts 2023-05-12 20:55:47 -07:00
ceski
477fb17713 Simplify reset 2023-05-12 20:37:41 -07:00
Roman Fomin
590d410b13 fix upscale texture inconsistencies (now it should match Choco/Crispy) 2023-05-13 10:33:55 +07:00
ceski
ee415606ed Remove reverb and chorus config keys 2023-05-12 20:07:51 -07:00
ceski
cdf8987234 Clean up EMIDI device handling 2023-05-12 20:01:50 -07:00
ceski
0b9ca8a989 Fix EMIDI global looping
e.g. ALIENZ.MID
2023-05-12 19:54:49 -07:00
Roman Fomin
23edf7ef4c redo looping for music stream
* Fix looping off case for tracker music.

* Do not always loop if `LOOP_START`/`LOOP_END` tags are present.
2023-05-13 09:09:36 +07:00
Fabian Greffrath
c6735cb110
add -dumptables arg to export generated translation tables to PWAD (#1052)
* add -dumptables arg to export generated translation tables to PWAD

Fixes #1033

* start messages on a new line

* Revert "start messages on a new line"

This reverts commit 3896f9d49fecd6a17862cd19ad7b76c4dcd29c34.

* proper new line in message output
2023-05-12 13:48:44 +02:00
Roman Fomin
4b0cb33234
add initialization checks to music modules (#1051)
Now, for example, if OpenAL fails to initialize, Win Native MIDI can still
work.
2023-05-12 14:15:42 +07:00
Roman Fomin
b06439e4ab
replace sc_man with u_scanner for MUSINFO parsing (#1050) 2023-05-12 13:35:56 +07:00
Roman Fomin
7c72cb58f5 fix build on macOS < 10.5 2023-05-12 13:15:27 +07:00
Roman Fomin
6513419d39
reset musinfo.from_savegame on G_DoWorldDone and G_DeferedInitNew (#1049) 2023-05-12 13:09:33 +07:00
Roman Fomin
56ee1fbaa2 little clean up 2023-05-11 07:57:24 +07:00
Roman Fomin
f5276845cf more accurate emulation of fread in memio 2023-05-11 07:55:43 +07:00
Roman Fomin
26876ee72d don't install redundant packages in macOS configuration 2023-05-11 07:54:17 +07:00
Roman Fomin
b86a45f2a2
initial implementation of macOS native MIDI module (#1048)
* set CMAKE_FIND_FRAMEWORK to NEVER

* use pkg-config

* simplify FindOpenAL.cmake

* try to fix build

* integrate code from Odamex
2023-05-11 07:29:38 +07:00
Roman Fomin
69b4b5a81a eat key if cheat found
Fix bug report from DW.
2023-05-10 11:28:52 +07:00
Fabian Greffrath
2724eb590e
always print player coords if automap inactive (#1047)
Fixes #1036
2023-05-08 17:28:15 +02:00
Roman Fomin
17d0f54fd8
enable widescreen mode without aspect ratio correction, reformatting (#1042) 2023-05-08 16:38:30 +07:00
ceski
6def818410
winmidi: Clean up "reset all controllers" handling (#1046) 2023-05-08 16:38:02 +07:00
Roman Fomin
49e936a054
disable music if sound is not initialized (#1045) 2023-05-08 02:54:05 +07:00
Roman Fomin
cab1795948
i_video.c refactor, resize upscaled texture on window resize (#1040)
* move input code to i_input.c

* factor I_ResetGraphicsMode() from I_InitGraphicsMode()

* resize upscaled texture on window resize

* cosmetic changes

* move global variables to the top, remove extern

* restore original MBF format of "draws little dots..."

* reformat I_SetPalette for consistency
2023-05-07 23:43:43 +07:00
Roman Fomin
ae0281d38b
remove same input element in menu instead of ignoring (#1041)
* edit help string
2023-05-07 21:18:12 +07:00
Roman Fomin
a37167944c memio: fix EOF reset 2023-05-07 14:29:31 +07:00
Roman Fomin
8ddecfedfa cosmetic changes in update_wiki.yml 2023-05-06 22:17:45 +07:00
Roman Fomin
fecc4d8086
switch to UCRT MSYS2 build, cosmetic changes (#1037) 2023-05-06 22:13:20 +07:00
Roman Fomin
03ac60dca7 memio: fgets() fills a string even if its size is not large enough 2023-05-06 20:20:45 +07:00
Fabian Greffrath
0fb24e322f fix uninitialized usage of output in P_LoadNodes_ZDBSP() 2023-05-06 11:03:05 +02:00
Fabian Greffrath
af535939b9 fix filename = NULL in ProcessDehFile() 2023-05-06 10:59:44 +02:00
Joan Bruguera
8eb510840f
more robust fallback logic for music modules (#1035)
The MIDI player fallback logic was to initialize `module 0 device 0`.
However, it is possible that this fallback also fails.

A scenario where this happens is when running on Linux with FluidSynth
but no soundfonts. In this case, FluidSynth will fail to initialize, the
fallback will try to use FluidSynth again, which will fail again, and
since the return code of `module->I_InitMusic` is not checked, the module
will stay uninitialized and will cause a crash a bit later.

To fix this, implement a more robust fallback logic which tries to
initialize each music module. This logic will always succeed since in
the worst case it will fallback to OPL, which currently never fails.

Fixes: 2f27fa739a1a ("fall back to `module 0 device 0` if the music module failed to initialize")
2023-05-06 07:27:18 +07:00
Roman Fomin
06cc022185
cmake: use ALIAS instead of generator expressions, cosmetic changes (#1034) 2023-05-05 08:42:12 +07:00