How to reproduce: launch next in OpenGL, change resolutions in windowed mode a couple of times and you should get a Z_CheckHeap error by the fifth time or so. At least that's what happens to me on Windows. Tell me if you can't get it to happen on Windows.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
System info:
64-bit Windows 10 Home (version 2004, build 19041.685), with NVIDIA GeForce RTX 2080 Ti (driver version 445.87), on a single-monitor 60-hertz 1920x1080 setup.
SRB2 info: 64-bit Windows build of SRB2, compiled from commit 8c975837* using Mingw-w64 (version "GNU Make 4.3", GCC 10.1.0), using compile command mingw32-make CC=gcc ERRORMODE=1 MINGW64=1 NOOBJDUMP=1 SDL=1 WINDOWSHELL=1 -j8, cycling twice through every in-game resolution one by one, SRB2 launched with command-line parameters -borderless -height 1080 -nohidapi -skipintro -width 1920 -win. No crash. The same applies if I remove -borderless.
* In src/m_misc.c, I replaced #define PRIdS "Iu" with #define PRIdS "zu" to work around 64-bit compilation errors. Other than that, it was purely commit 8c975837
No. If I remove MINGW64=1 from my compile command (while leaving everything else as is), my compile log is a lot of...
[Click to expand/fold][...]
process_begin: CreateProcess(NULL, pkg-config libopenmpt --cflags, ...) failed.
Makefile:685: pipe: No such file or directory
process_begin: CreateProcess(NULL, pkg-config zlib --cflags, ...) failed.
Makefile:685: pipe: No such file or directory
process_begin: CreateProcess(NULL, curl-config --cflags, ...) failed.
Makefile:685: pipe: No such file or directory
"Creating dependency file, depend.dep"
The syntax of the command is incorrect.
mingw32-make: [Makefile:681: ../objs/SDL/Release/depend.dep] Error 1 (ignored)
gcc -O3 -g -fno-exceptions -DDIRECTFULLSCREEN -DHAVE_SDL -DHAVE_MIXER -DHAVE_THREADS -DHWRENDER -DCOMPVERSION -DUSEASM -DHAVE_PNG -DHAVE_OPENMPT -DHAVE_ZLIB -DHAVE_CURL -msse3 -mfpmath=sse -DNDEBUG -MM *.c > ../objs/SDL/Release/depend.ped
In file included from console.c:27:
s_sound.h:24:10: fatal error: libopenmpt/libopenmpt.h: No such file or directory
24 | #include "libopenmpt/libopenmpt.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from i_system.h:181,
from d_clisrv.c:19:
s_sound.h:24:10: fatal error: libopenmpt/libopenmpt.h: No such file or directory
24 | #include "libopenmpt/libopenmpt.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[...]
It looked promising at first, but didn't compile. Compile log, will expire in 1 month from now: https://pastebin.com/045pBnZ1
That said, it's probably(?) safe to assume that it will crash on 32-bit Windows builds, just not 64-bit ones, and my compile setup is tailored for 64-bit.
@Zwip-Zwap_Zapony You are supposed to use the 32-bit version of MinGW to compile with MINGW=1 successfully, but you are the using the 64-bit version of MinGW apparently. The 32-bit version of MinGW can only compile 32-bit exes, while the 64-bit version of MinGW can only compile 64-bit exes.