diff --git a/Linux/sgml/Quakespasm.sgml b/Linux/sgml/Quakespasm.sgml index 6fe2c5d8..a489ce6a 100644 --- a/Linux/sgml/Quakespasm.sgml +++ b/Linux/sgml/Quakespasm.sgml @@ -7,14 +7,14 @@ About

- -is a modern, cross-platform Quake engine based on . +QuakeSpasm is a modern cross-platform Quake engine based on FitzQuake.

It includes support for 64 bit CPUs and custom music playback, a new sound driver, some graphical niceities, and numerous bug-fixes and other improvements.

-Quakespasm utilizes either the SDL or SDL2 frameworks, so choose which one works best for you. -SDL is probably less buggy, but SDL2 has nicer features and smoother mouse input - though no CD support. +Quakespasm utilizes SDL-1.2 or SDL2 frameworks, choose one which works best for you. +SDL2 has nicer features, smoother mouse input and better support for newer operating systems, +but no CD-ROM support. Downloads

@@ -50,8 +50,8 @@ Quakespasm can play various external music formats, including MP3, OGG and FLAC. Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music". Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG. -As of 0.90.0, music is played back at 44100 Hz by default with no need to adjust "-sndspeed". Use the "-noextmusic" option to disable this feature. +As of 0.90.0, music is played back at 44100 Hz by default with no need to adjust "-sndspeed". See for more details. @@ -122,15 +122,11 @@ Compile time options include make SDL_CONFIG=/PATH/TO/sdl-config for unusual SDL installations make USE_SDL2=1 to compile against SDL2 instead of SDL-1.2 - Windows

QuakeSpasm developers cross-compile windows binaries using and . - The project can also be built using Microsoft Visual Studio 2005 and newer versions.

- Mac OS X

A Quakespasm App (including program launcher and update framework) can be made using the Xcode template found in the MacOSX directory. - Alternatively, have a look at Makefile.darwin for more instructions on building from a console.

@@ -140,6 +136,17 @@ QuakeSpasm 0.94.0 has initial support for playing the 2021 re-release content: C Changes

+ Changes in 0.94.6

+ + Server protocol size check fixes for sounds and particles. + An invalid memory access fix in the jpg screenshot writer. + Basic dependency tracking in Makefiles. + Backported a few fixes to the bundled SDL2-2.0.22 version. + Minor build fix for C++ compilers. + Other small improvements elsewhere in the code. + +

+ Changes in 0.94.5

Compatibility with new SDL2 versioning scheme. @@ -323,24 +330,20 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200) Prevent a possible buffer overflow in Cbuf_Execute (old Q1/Q2 bug). Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug). - Visual improvements New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning specific liquid opacities (from DirectQ/RMQEngine, non-archived, default to 0), and new worldspawn keys _wateralpha, _lavaalpha, _slimealpha, _telealpha, _skyfog (unique to Quakespasm, similar to the behaviour of the "fog" worldspawn key). GLSL gamma is now supported on older hardware without NPOT extension. - Interface improvements New r_pos command to show player position. NaN detection in traceline with "developer 1" set now warns instead of errors. - Code cleanup / Other Update third-party libraries. - Raised limits Default max_edicts 8192 (was 2048) and no longer saved to config.cfg. @@ -362,13 +365,11 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200) Fix viewmodel not lerping on extended-limit maps. Fix crash on out-of-bounds skin number. - Performance Use multithreaded OpenGL on OS X for better performance. New, faster mdl renderer using GLSL. Disable with "-noglslalias". - Visual improvements New gamma correction implementation using GLSL. Fixes all known gamma issues (affecting the full display, persisting after quitting, or darkening the screen on OS X). Disable with "-noglslgamma". @@ -376,7 +377,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200) Shadows use stencil buffer to avoid overlapping artifacts (from MarkV.) r_noshadow_list cvar added (from MarkV.) - Interface improvements Support pausing demo playback with the "pause" command. @@ -385,7 +385,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200) Silence "exceeded standard limit" messages unless developer cvar is >= 1. Some spam moved from developer 1 to 2: "can't find tga/lit/ent", "trying to load ent", "bad chunk length", "meshing", "PR_AlocStringSlots: realloc'ing" - Code cleanup Clean up IDE project files to build on fresh systems. @@ -594,7 +593,6 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200) Changes to cvar persistence gl_flashblend (default 0), r_shadow, r_wateralpha, r_dynamic, r_novis - Copyright

Quake and Quakespasm are released under the diff --git a/MacOSX/English.lproj/InfoPlist.strings b/MacOSX/English.lproj/InfoPlist.strings index f82959d2..5f9ed9dd 100644 Binary files a/MacOSX/English.lproj/InfoPlist.strings and b/MacOSX/English.lproj/InfoPlist.strings differ diff --git a/MacOSX/Info.plist b/MacOSX/Info.plist index 9e3925c4..54f7043c 100644 --- a/MacOSX/Info.plist +++ b/MacOSX/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.94.5 + 0.94.6 CFBundleSignature ???? LSApplicationCategoryType diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h index 427c4c63..e71cf979 100644 --- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h +++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_assert.h @@ -71,7 +71,7 @@ assert can have unique static variables associated with it. #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ # define SDL_FUNCTION __func__ -#elif ((__GNUC__ >= 2) || defined(_MSC_VER) || defined (__WATCOMC__)) +#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__)) # define SDL_FUNCTION __FUNCTION__ #else # define SDL_FUNCTION "???" diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h index b981c094..dd918507 100644 --- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h +++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_revision.h @@ -1,2 +1,2 @@ -#define SDL_REVISION "@1594e60f8c154d3c8cea175fe88694e5aaf5e7bc" +#define SDL_REVISION "@a788189020ac220e3c44e1383e0a1621b3309f8f" #define SDL_REVISION_NUMBER 0 diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_surface.h b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_surface.h index 44123761..838de654 100644 --- a/MacOSX/SDL2.framework/Versions/A/Headers/SDL_surface.h +++ b/MacOSX/SDL2.framework/Versions/A/Headers/SDL_surface.h @@ -61,6 +61,8 @@ extern "C" { */ #define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) +typedef struct SDL_BlitMap SDL_BlitMap; /* this is an opaque type. */ + /** * \brief A collection of pixels used in software blitting. * @@ -88,7 +90,7 @@ typedef struct SDL_Surface SDL_Rect clip_rect; /**< Read-only */ /** info for fast blit mapping to other surfaces */ - struct SDL_BlitMap *map; /**< Private */ + SDL_BlitMap *map; /**< Private */ /** Reference count -- used when freeing surface */ int refcount; /**< Read-mostly */ diff --git a/MacOSX/SDL2.framework/Versions/A/Headers/begin_code.h b/MacOSX/SDL2.framework/Versions/A/Headers/begin_code.h index b1b1a3a9..67055678 100644 --- a/MacOSX/SDL2.framework/Versions/A/Headers/begin_code.h +++ b/MacOSX/SDL2.framework/Versions/A/Headers/begin_code.h @@ -34,7 +34,7 @@ #define _begin_code_h #ifndef SDL_DEPRECATED -# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ +# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ # define SDL_DEPRECATED __attribute__((deprecated)) # else # define SDL_DEPRECATED diff --git a/MacOSX/SDL2.framework/Versions/A/SDL2 b/MacOSX/SDL2.framework/Versions/A/SDL2 index 0710c7a3..e83924a1 100755 Binary files a/MacOSX/SDL2.framework/Versions/A/SDL2 and b/MacOSX/SDL2.framework/Versions/A/SDL2 differ diff --git a/Quake/Makefile b/Quake/Makefile index 231e077d..7cf92456 100644 --- a/Quake/Makefile +++ b/Quake/Makefile @@ -55,7 +55,7 @@ PKG_CONFIG ?= pkg-config CPUFLAGS= LDFLAGS = DFLAGS ?= -CFLAGS ?= -Wall -Wno-trigraphs +CFLAGS ?= -Wall -Wno-trigraphs -MMD CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) ifneq ($(DEBUG),0) @@ -65,7 +65,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 -# -fno-asynchronous-unwind-tables +#CFLAGS += -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -198,23 +198,8 @@ endif LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODECLIBS) # --------------------------- -# targets -# --------------------------- - -.PHONY: clean debug release - -DEFAULT_TARGET := quakespasm - -# --------------------------- -# rules -# --------------------------- - -%.o: %.c - $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< - -# ---------------------------------------------------------------------------- # objects -# ---------------------------------------------------------------------------- +# --------------------------- MUSIC_OBJS:= bgmusic.o \ snd_codec.o \ @@ -236,7 +221,6 @@ SYSOBJ_GL_VID:= gl_vidsdl.o SYSOBJ_NET := net_bsd.o net_udp.o SYSOBJ_SYS := pl_linux.o sys_sdl_unix.o SYSOBJ_MAIN:= main_sdl.o -SYSOBJ_RES := GLOBJS = \ gl_refrag.o \ @@ -303,24 +287,32 @@ OBJS := strlcat.o \ sv_user.o \ world.o \ zone.o \ - $(SYSOBJ_SYS) $(SYSOBJ_MAIN) $(SYSOBJ_RES) + $(SYSOBJ_SYS) $(SYSOBJ_MAIN) -# ------------------------ -# Linux build rules -# ------------------------ +# --------------------------- +# targets / rules +# --------------------------- + +.PHONY: clean debug release + +DEFAULT_TARGET := quakespasm +all: $(DEFAULT_TARGET) + +%.o: %.c + $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< quakespasm: $(OBJS) $(LINKER) $(OBJS) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ $(call do_strip,$@) -image.o: lodepng.c lodepng.h stb_image_write.h - release: quakespasm debug: $(error Use "make DEBUG=1") clean: - rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) + $(RM) *.o *.d $(DEFAULT_TARGET) install: quakespasm cp quakespasm /usr/local/games/quake + +sinclude $(OBJS:.o=.d) diff --git a/Quake/Makefile.darwin b/Quake/Makefile.darwin index 5db18a2c..8691416e 100644 --- a/Quake/Makefile.darwin +++ b/Quake/Makefile.darwin @@ -50,12 +50,12 @@ CC ?= gcc LINKER = $(CC) LIPO ?= lipo -STRIP ?= strip +STRIP ?= strip -S CPUFLAGS= LDFLAGS = DFLAGS ?= -CFLAGS ?= -Wall +CFLAGS ?= -Wall -MMD # @rpath can be used when targeting 10.5+ USE_RPATH=0 # require 10.5 for 64 bit builds @@ -97,7 +97,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 -# -fno-asynchronous-unwind-tables +#CFLAGS += -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -222,27 +222,8 @@ endif LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODEC_LINK) $(CODECLIBS) # --------------------------- -# targets -# --------------------------- - -.PHONY: clean debug release - -DEFAULT_TARGET := quakespasm - -# --------------------------- -# rules -# --------------------------- - -%.o: %.c - $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< -%.o: %.m - $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< -%.o: ../MacOSX/%.m - $(CC) $(DFLAGS) -c -I../MacOSX $(CFLAGS) $(SDL_CFLAGS) -o $@ $< - -# ---------------------------------------------------------------------------- # objects -# ---------------------------------------------------------------------------- +# --------------------------- MUSIC_OBJS:= bgmusic.o \ snd_codec.o \ @@ -331,21 +312,34 @@ OBJS := strlcat.o \ sv_user.o \ world.o \ zone.o \ - $(SYSOBJ_SYS) $(SYSOBJ_LAUNCHER) $(SYSOBJ_MAIN) + $(SYSOBJ_SYS) \ + $(SYSOBJ_LAUNCHER) $(SYSOBJ_MAIN) -# ------------------------ -# darwin build rules -# ------------------------ +# --------------------------- +# targets / rules +# --------------------------- + +.PHONY: clean debug release + +DEFAULT_TARGET := quakespasm +all: $(DEFAULT_TARGET) + +%.o: %.c + $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< +%.o: %.m + $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< +%.o: ../MacOSX/%.m + $(CC) $(DFLAGS) -c -I../MacOSX $(CFLAGS) $(SDL_CFLAGS) -o $@ $< quakespasm: $(OBJS) $(LINKER) $(OBJS) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ $(call do_strip,$@) -image.o: lodepng.c lodepng.h stb_image_write.h - release: quakespasm debug: $(error Use "make DEBUG=1") clean: - rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) + $(RM) *.o *.d $(DEFAULT_TARGET) + +sinclude $(OBJS:.o=.d) diff --git a/Quake/Makefile.w32 b/Quake/Makefile.w32 index 481bb00c..d267eb2f 100644 --- a/Quake/Makefile.w32 +++ b/Quake/Makefile.w32 @@ -53,7 +53,7 @@ LDFLAGS += -Wl,--large-address-aware #don't crash out with larger hunk sizes LDFLAGS += $(QSS_LDFLAGS) LDFLAGS += -Wl,--no-insert-timestamp #prevent non-determinism in the exe header. mustn't be used for dlls. DFLAGS ?= -CFLAGS ?= -m32 -Wall -Wno-trigraphs +CFLAGS ?= -m32 -Wall -Wno-trigraphs -MMD CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) CFLAGS += $(QSS_CFLAGS) @@ -64,7 +64,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 -# -fno-asynchronous-unwind-tables +#CFLAGS += -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -185,25 +185,8 @@ endif LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODEC_LINK) $(CODECLIBS) # --------------------------- -# targets -# --------------------------- - -.PHONY: clean debug release - -DEFAULT_TARGET := quakespasm.exe - -# --------------------------- -# rules -# --------------------------- - -%.o: %.c - $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< -%.res: ../Windows/%.rc - $(WINDRES) -I../Windows --output-format=coff --target=pe-i386 -o $@ $< - -# ---------------------------------------------------------------------------- # objects -# ---------------------------------------------------------------------------- +# --------------------------- MUSIC_OBJS:= bgmusic.o \ snd_codec.o \ @@ -291,21 +274,31 @@ OBJS := strlcat.o \ sv_user.o \ world.o \ zone.o \ - $(SYSOBJ_SYS) $(SYSOBJ_MAIN) $(SYSOBJ_RES) + $(SYSOBJ_SYS) $(SYSOBJ_MAIN) -# ------------------------ -# MinGW build rules -# ------------------------ +# --------------------------- +# targets / rules +# --------------------------- -quakespasm.exe: $(OBJS) - $(LINKER) $(OBJS) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ +.PHONY: clean debug release + +DEFAULT_TARGET := quakespasm.exe +all: $(DEFAULT_TARGET) + +%.o: %.c + $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< +%.res: ../Windows/%.rc + $(WINDRES) -I../Windows --output-format=coff --target=pe-i386 -o $@ $< + +quakespasm.exe: $(OBJS) $(SYSOBJ_RES) + $(LINKER) $(OBJS) $(SYSOBJ_RES) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ $(call do_strip,$@) -image.o: lodepng.c lodepng.h stb_image_write.h - release: quakespasm.exe debug: $(error Use "make DEBUG=1") clean: - rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) + $(RM) *.o *.d *.res $(DEFAULT_TARGET) + +sinclude $(OBJS:.o=.d) diff --git a/Quake/Makefile.w64 b/Quake/Makefile.w64 index cef03bbf..309fdc9c 100644 --- a/Quake/Makefile.w64 +++ b/Quake/Makefile.w64 @@ -50,7 +50,7 @@ LDFLAGS = -m64 -mwindows -static-libgcc LDFLAGS += $(QSS_LDFLAGS) LDFLAGS += -Wl,--no-insert-timestamp #prevent non-determinism in the exe header. mustn't be used for dlls. DFLAGS ?= -CFLAGS ?= -m64 -Wall -Wno-trigraphs +CFLAGS ?= -m64 -Wall -Wno-trigraphs -MMD CFLAGS += $(call check_gcc,-std=gnu11,) CFLAGS += $(CPUFLAGS) CFLAGS += $(QSS_CFLAGS) @@ -61,7 +61,7 @@ do_strip= else DFLAGS += -DNDEBUG CFLAGS += -O2 -# -fno-asynchronous-unwind-tables +#CFLAGS += -fno-asynchronous-unwind-tables CFLAGS += $(call check_gcc,-fweb,) CFLAGS += $(call check_gcc,-frename-registers,) cmd_strip=$(STRIP) $(1) @@ -177,25 +177,8 @@ endif LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODEC_LINK) $(CODECLIBS) # --------------------------- -# targets -# --------------------------- - -.PHONY: clean debug release - -DEFAULT_TARGET := quakespasm.exe - -# --------------------------- -# rules -# --------------------------- - -%.o: %.c - $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< -%.res: ../Windows/%.rc - $(WINDRES) -I../Windows --output-format=coff --target=pe-x86-64 -o $@ $< - -# ---------------------------------------------------------------------------- # objects -# ---------------------------------------------------------------------------- +# --------------------------- MUSIC_OBJS:= bgmusic.o \ snd_codec.o \ @@ -283,21 +266,31 @@ OBJS := strlcat.o \ sv_user.o \ world.o \ zone.o \ - $(SYSOBJ_SYS) $(SYSOBJ_MAIN) $(SYSOBJ_RES) + $(SYSOBJ_SYS) $(SYSOBJ_MAIN) -# ------------------------ -# MinGW-w64 build rules -# ------------------------ +# --------------------------- +# targets / rules +# --------------------------- -quakespasm.exe: $(OBJS) - $(LINKER) $(OBJS) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ +.PHONY: clean debug release + +DEFAULT_TARGET := quakespasm.exe +all: $(DEFAULT_TARGET) + +%.o: %.c + $(CC) $(DFLAGS) -c $(CFLAGS) $(SDL_CFLAGS) -o $@ $< +%.res: ../Windows/%.rc + $(WINDRES) -I../Windows --output-format=coff --target=pe-x86-64 -o $@ $< + +quakespasm.exe: $(OBJS) $(SYSOBJ_RES) + $(LINKER) $(OBJS) $(SYSOBJ_RES) $(LDFLAGS) $(LIBS) $(SDL_LIBS) -o $@ $(call do_strip,$@) -image.o: lodepng.c lodepng.h stb_image_write.h - release: quakespasm.exe debug: $(error Use "make DEBUG=1") clean: - rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print) + $(RM) *.o *.d *.res $(DEFAULT_TARGET) + +sinclude $(OBJS:.o=.d) diff --git a/Quake/cmd.c b/Quake/cmd.c index cea7f184..25eaa492 100644 --- a/Quake/cmd.c +++ b/Quake/cmd.c @@ -301,7 +301,9 @@ void Cmd_Exec_f (void) Cbuf_InsertText ("\n"); //just in case there was no trailing \n. Cbuf_InsertText (f); - Hunk_FreeToLowMark (mark); + if (f != default_cfg) { + Hunk_FreeToLowMark (mark); + } } diff --git a/Quake/common.h b/Quake/common.h index 3b5c61eb..4bbaab9b 100644 --- a/Quake/common.h +++ b/Quake/common.h @@ -42,8 +42,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #undef min #undef max -#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ - (defined(__cplusplus) && (__cplusplus >= 201103L)) +#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) #define GENERIC_TYPES(x, separator) \ x(int, i) separator \ x(unsigned int, u) separator \ diff --git a/Quake/image.c b/Quake/image.c index bcecc605..f6758b1e 100644 --- a/Quake/image.c +++ b/Quake/image.c @@ -588,9 +588,7 @@ typedef struct targaheader_s { unsigned char pixel_size, attributes; } targaheader_t; -#define TARGAHEADERSIZE 18 //size on disk - -targaheader_t targa_header; +#define TARGAHEADERSIZE 18 /* size on disk */ int fgetLittleShort (FILE *f) { @@ -676,6 +674,7 @@ byte *Image_LoadTGA (FILE *fin, int *width, int *height) int realrow; //johnfitz -- fix for upside-down targas qboolean upside_down; //johnfitz -- fix for upside-down targas stdio_buffer_t *buf; + targaheader_t targa_header; targa_header.id_length = fgetc(fin); targa_header.colormap_type = fgetc(fin); @@ -1152,10 +1151,11 @@ qboolean Image_WritePNG (const char *name, byte *data, int width, int height, in #endif lodepng_state_cleanup (&state); - free (png); + lodepng_free (png); /* png was allocated by lodepng */ free (filters); - if (!upsidedown) + if (!upsidedown) { free (flipped); + } return (error == 0); } diff --git a/Quake/main_sdl.c b/Quake/main_sdl.c index 5c0167a4..60b126a5 100644 --- a/Quake/main_sdl.c +++ b/Quake/main_sdl.c @@ -87,6 +87,8 @@ int main(int argc, char *argv[]) Sys_Init(); + Sys_Printf("Initializing "ENGINE_NAME_AND_VER"\n"); + parms.memsize = DEFAULT_MEMORY; if (COM_CheckParm("-heapsize")) { //in kb @@ -106,13 +108,6 @@ int main(int argc, char *argv[]) if (!parms.membase) Sys_Error ("Not enough memory free; check disk space\n"); - Sys_Printf("Quake %1.2f (c) id Software\n", VERSION); - Sys_Printf("GLQuake %1.2f (c) id Software\n", GLQUAKE_VERSION); - Sys_Printf("FitzQuake %1.2f (c) John Fitzgibbons\n", FITZQUAKE_VERSION); - Sys_Printf("FitzQuake SDL port (c) SleepwalkR, Baker\n"); - Sys_Printf("QuakeSpasm " QUAKESPASM_VER_STRING " (c) Ozkan Sezer, Eric Wasylishen & others\n"); - Sys_Printf("QuakeSpasm-Spiked (c) Spike\n"); - Sys_Printf("Host_Init\n"); Host_Init(); diff --git a/Quake/quakedef.h b/Quake/quakedef.h index 22053367..e01802fc 100644 --- a/Quake/quakedef.h +++ b/Quake/quakedef.h @@ -37,7 +37,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define FITZQUAKE_VERSION 0.85 //johnfitz #define QUAKESPASM_VERSION 0.94 -#define QUAKESPASM_VER_PATCH 5 // helper to print a string like 0.94.4 +#define QUAKESPASM_VER_PATCH 6 // helper to print a string like 0.94.6 #ifndef QUAKESPASM_VER_SUFFIX #define QUAKESPASM_VER_SUFFIX // optional version suffix string literal like "-beta1" #endif diff --git a/Quake/snd_xmp.c b/Quake/snd_xmp.c index 624716a5..d73149db 100644 --- a/Quake/snd_xmp.c +++ b/Quake/snd_xmp.c @@ -93,6 +93,7 @@ static qboolean S_XMP_CodecOpenStream (snd_stream_t *stream) moddata = (byte *) Hunk_Alloc(len); FS_fread(moddata, 1, len, &stream->fh); if (xmp_load_module_from_memory(c, moddata, len) < 0) { + Hunk_FreeToLowMark(mark); Con_DPrintf("Could not load module %s\n", stream->name); goto err1; } diff --git a/Quake/stb_image_write.h b/Quake/stb_image_write.h index d5904438..260b0b42 100644 --- a/Quake/stb_image_write.h +++ b/Quake/stb_image_write.h @@ -381,7 +381,7 @@ static int stbiw__jpg_processDU(stbi__write_context *s, int *bitBuf, int *bitCnt int startpos = i; int nrzeroes; unsigned short bits[2]; - for (; DU[i]==0 && i<=end0pos; ++i) { + for (; i<=end0pos && DU[i]==0; ++i) { } nrzeroes = i-startpos; if ( nrzeroes >= 16 ) { diff --git a/Quake/sv_main.c b/Quake/sv_main.c index cd2f0d01..5bc46154 100644 --- a/Quake/sv_main.c +++ b/Quake/sv_main.c @@ -1565,7 +1565,7 @@ void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count) { int i, v; - if (sv.datagram.cursize > MAX_DATAGRAM-16) + if (sv.datagram.cursize > MAX_DATAGRAM-18) return; MSG_WriteByte (&sv.datagram, svc_particle); MSG_WriteCoord (&sv.datagram, org[0], sv.protocolflags); @@ -1601,7 +1601,7 @@ Larger attenuations will drop off. (max 4 attenuation) */ void SV_StartSound2 (edict_t *entity, float *origin, int channel, const char *sample, int volume, float attenuation, float speed, int flags, float timeoffset) { - unsigned int sound_num, ent; + unsigned int sound_num, ent, msgsize; int i, field_mask, client_mask; int p; client_t *cl; @@ -1623,7 +1623,7 @@ void SV_StartSound2 (edict_t *entity, float *origin, int channel, const char *sa else if (channel > 7) Con_DPrintf ("SV_StartSound: channel = %i\n", channel); - if (sv.datagram.cursize > MAX_DATAGRAM-16) + if (sv.datagram.cursize > MAX_DATAGRAM-21) return; // find precache number for sound @@ -1641,11 +1641,12 @@ void SV_StartSound2 (edict_t *entity, float *origin, int channel, const char *sa ent = NUM_FOR_EDICT(entity); + msgsize = 2+4+2+12; field_mask = 0; if (volume != DEFAULT_SOUND_PACKET_VOLUME) - field_mask |= SND_VOLUME; + field_mask |= SND_VOLUME, msgsize+=1; if (attenuation != DEFAULT_SOUND_PACKET_ATTENUATION) - field_mask |= SND_ATTENUATION; + field_mask |= SND_ATTENUATION, msgsize+=1; //johnfitz -- PROTOCOL_FITZQUAKE if (ent >= 8192 || channel >= 8) @@ -1662,9 +1663,10 @@ void SV_StartSound2 (edict_t *entity, float *origin, int channel, const char *sa if (flags & CF_NOREVERB) field_mask |= SND_FTE_NOREVERB; if (flags & CF_FOLLOW) field_mask |= SND_FTE_FOLLOW; if (flags & CF_NOREPLACE) field_mask |= SND_FTE_NOREPLACE; - if (flags & CF_SENDVELOCITY) field_mask |= SND_FTE_VELOCITY; - if (speed && speed != 1) field_mask |= SND_FTE_PITCHADJ; - if (timeoffset) field_mask |= SND_FTE_TIMEOFS; + if (flags & CF_SENDVELOCITY) field_mask |= SND_FTE_VELOCITY, msgsize+=6; + if (speed && speed != 1) field_mask |= SND_DP_PITCH, msgsize+=2; + if (timeoffset) field_mask |= SND_FTE_TIMEOFS, msgsize+=2; + if (field_mask > 0xff) field_mask |= SND_FTE_MOREFLAGS, msgsize += 9; //too lazy to figure out the actual size. // for (p = 0; p < svs.maxclients; p++) @@ -1690,6 +1692,9 @@ void SV_StartSound2 (edict_t *entity, float *origin, int channel, const char *sa if (!(cl->protocol_pext2&PEXT2_REPLACEMENTDELTAS)) client_mask &= (SND_VOLUME|SND_ATTENUATION|SND_LARGEENTITY|SND_LARGESOUND); + if (msg->cursize+msgsize > msg->maxsize) + continue; //sacrifice it so as to not crash the client out. + // directed messages go only to the entity the are targeted on MSG_WriteByte (msg, svc_sound); MSG_WriteByte (msg, client_mask&0xff); @@ -1779,6 +1784,9 @@ void SV_LocalSound (client_t *client, const char *sample) field_mask = SND_LARGESOUND; } + if (msg->cursize+19 > msg->maxsize) + return; + MSG_WriteByte (msg, svc_sound); MSG_WriteByte (msg, field_mask); if (field_mask & SND_ATTENUATION) diff --git a/Quakespasm.html b/Quakespasm.html index eb942857..f961b94c 100644 --- a/Quakespasm.html +++ b/Quakespasm.html @@ -18,14 +18,13 @@

3. Hints

- +

4. Compiling and Installation

-

-

5. Changes

+

5. Changes

6. Copyright

@@ -72,14 +72,14 @@

1. About

-

-QuakeSpasm -is a modern, cross-platform Quake engine based on -FitzQuake.

+ + +

QuakeSpasm is a modern cross-platform Quake engine based on FitzQuake.

It includes support for 64 bit CPUs and custom music playback, a new sound driver, some graphical niceities, and numerous bug-fixes and other improvements.

-

Quakespasm utilizes either the SDL or SDL2 frameworks, so choose which one works best for you. -SDL is probably less buggy, but SDL2 has nicer features and smoother mouse input - though no CD support.

+

Quakespasm utilizes SDL-1.2 or SDL2 frameworks, choose one which works best for you. +SDL2 has nicer features, smoother mouse input and better support for newer operating systems, +but no CD-ROM support.

2. Downloads

@@ -117,8 +117,8 @@ where DRIVER may be alsa, dsp, pulse, esd ...

  • Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music".
  • Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG.
  • -
  • As of 0.90.0, music is played back at 44100 Hz by default with no need to adjust "-sndspeed".
  • Use the "-noextmusic" option to disable this feature.
  • +
  • As of 0.90.0, music is played back at 44100 Hz by default with no need to adjust "-sndspeed".
  • See Quakespasm-Music.txt for more details.
@@ -174,13 +174,12 @@ where DRIVER may be alsa, dsp, pulse, esd ...

4. Compiling and Installation

-

See the Downloads section to get the sourcecode, then below for platform specific instructions. Quakespasm can also be built with the cross-platform Codeblocks.
Quakespasm's (optional) custom data is now stored in the file quakespasm.pak. This file should be placed alongside your quakespasm binary and id1 directory.

+

4.1 Linux/Unix

-

After extracting the source tarball, "cd Quake" and edit the Makefile for music options.

Streaming music playback requires "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG files.

Then type "make" to compile the program, and copy the "quakespasm" binary (and "quakespasm.pak") to your Quake game directory.
@@ -195,25 +194,37 @@ Compile time options include

4.2 Windows

-

QuakeSpasm developers cross-compile windows binaries using MinGW-w64 and MinGW.

The project can also be built using Microsoft Visual Studio 2005 and newer versions.

+

4.3 Mac OS X

-

A Quakespasm App (including program launcher and update framework) can be made using the Xcode template found in the MacOSX directory.

Alternatively, have a look at Makefile.darwin for more instructions on building from a console.

+

4.4 Quake '2021 re-release'

-

QuakeSpasm 0.94.0 has initial support for playing the 2021 re-release content: Copy the quakespasm binary to your rerelease installation and run quakespasm as you normally do.

5. Changes

-

5.1 Changes in 0.94.5 +

5.1 Changes in 0.94.6 +

+

+

    +
  • Server protocol size check fixes for sounds and particles.
  • +
  • An invalid memory access fix in the jpg screenshot writer.
  • +
  • Basic dependency tracking in Makefiles.
  • +
  • Backported a few fixes to the bundled SDL2-2.0.22 version.
  • +
  • Minor build fix for C++ compilers.
  • +
  • Other small improvements elsewhere in the code.
  • +
+

+ +

5.2 Changes in 0.94.5

    @@ -226,7 +237,7 @@ Compile time options include

-

5.2 Changes in 0.94.4 +

5.3 Changes in 0.94.4

    @@ -248,7 +259,7 @@ Compile time options include

-

5.3 Changes in 0.94.3 +

5.4 Changes in 0.94.3

    @@ -258,7 +269,7 @@ Compile time options include

-

5.4 Changes in 0.94.2 +

5.5 Changes in 0.94.2

    @@ -269,7 +280,7 @@ Compile time options include

-

5.5 Changes in 0.94.1 +

5.6 Changes in 0.94.1

    @@ -277,7 +288,7 @@ Compile time options include

-

5.6 Changes in 0.94.0 +

5.7 Changes in 0.94.0

    @@ -302,7 +313,7 @@ Compile time options include

-

5.7 Changes in 0.93.2 +

5.8 Changes in 0.93.2

    @@ -315,7 +326,7 @@ Compile time options include

-

5.8 Changes in 0.93.1 +

5.9 Changes in 0.93.1

    @@ -329,7 +340,7 @@ Compile time options include

-

5.9 Changes in 0.93.0 +

5.10 Changes in 0.93.0

    @@ -372,7 +383,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.10 Changes in 0.92.1 +

5.11 Changes in 0.92.1

    @@ -382,7 +393,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.11 Changes in 0.92.0 +

5.12 Changes in 0.92.0

    @@ -401,8 +412,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)
  • Updated some of the third-party libraries. Other fixes/clean-ups.

- -

5.12 Changes in 0.91.0 +

5.13 Changes in 0.91.0

Bugfixes

@@ -452,7 +462,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.13 Changes in 0.90.1 +

5.14 Changes in 0.90.1

Bugfixes

@@ -502,7 +512,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.14 Changes in 0.90.0 +

5.15 Changes in 0.90.0

    @@ -548,7 +558,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.15 Changes in 0.85.9 +

5.16 Changes in 0.85.9

    @@ -572,7 +582,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.16 Changes in 0.85.8 +

5.17 Changes in 0.85.8

    @@ -597,7 +607,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.17 Changes in 0.85.7 +

5.18 Changes in 0.85.7

    @@ -615,7 +625,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.18 Changes in 0.85.6 +

5.19 Changes in 0.85.6

    @@ -626,7 +636,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.19 Changes in 0.85.5 +

5.20 Changes in 0.85.5

    @@ -645,7 +655,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.20 Changes in 0.85.4 +

5.21 Changes in 0.85.4

    @@ -663,7 +673,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.21 Changes in 0.85.3 +

5.22 Changes in 0.85.3

    @@ -685,7 +695,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.22 Changes in 0.85.2 +

5.23 Changes in 0.85.2

    @@ -703,7 +713,7 @@ quakespasm (cl_alwaysrun 1, cl_forwardspeed 200, cl_backspeed 200)

-

5.23 Changes in 0.85.1 +

5.24 Changes in 0.85.1

    diff --git a/Quakespasm.txt b/Quakespasm.txt index 0bf922b0..37e5c7a8 100644 --- a/Quakespasm.txt +++ b/Quakespasm.txt @@ -19,39 +19,40 @@ 4.4 Quake '2021 re-release' 5. Changes - 5.1 Changes in 0.94.5 - 5.2 Changes in 0.94.4 - 5.3 Changes in 0.94.3 - 5.4 Changes in 0.94.2 - 5.5 Changes in 0.94.1 - 5.6 Changes in 0.94.0 - 5.7 Changes in 0.93.2 - 5.8 Changes in 0.93.1 - 5.9 Changes in 0.93.0 - 5.10 Changes in 0.92.1 - 5.11 Changes in 0.92.0 - 5.12 Changes in 0.91.0 - 5.12.1 Bugfixes - 5.12.2 Visual improvements - 5.12.3 Interface improvements - 5.12.4 Code cleanup / Other - 5.12.5 Raised limits - 5.13 Changes in 0.90.1 + 5.1 Changes in 0.94.6 + 5.2 Changes in 0.94.5 + 5.3 Changes in 0.94.4 + 5.4 Changes in 0.94.3 + 5.5 Changes in 0.94.2 + 5.6 Changes in 0.94.1 + 5.7 Changes in 0.94.0 + 5.8 Changes in 0.93.2 + 5.9 Changes in 0.93.1 + 5.10 Changes in 0.93.0 + 5.11 Changes in 0.92.1 + 5.12 Changes in 0.92.0 + 5.13 Changes in 0.91.0 5.13.1 Bugfixes - 5.13.2 Performance - 5.13.3 Visual improvements - 5.13.4 Interface improvements - 5.13.5 Code cleanup - 5.14 Changes in 0.90.0 - 5.15 Changes in 0.85.9 - 5.16 Changes in 0.85.8 - 5.17 Changes in 0.85.7 - 5.18 Changes in 0.85.6 - 5.19 Changes in 0.85.5 - 5.20 Changes in 0.85.4 - 5.21 Changes in 0.85.3 - 5.22 Changes in 0.85.2 - 5.23 Changes in 0.85.1 + 5.13.2 Visual improvements + 5.13.3 Interface improvements + 5.13.4 Code cleanup / Other + 5.13.5 Raised limits + 5.14 Changes in 0.90.1 + 5.14.1 Bugfixes + 5.14.2 Performance + 5.14.3 Visual improvements + 5.14.4 Interface improvements + 5.14.5 Code cleanup + 5.15 Changes in 0.90.0 + 5.16 Changes in 0.85.9 + 5.17 Changes in 0.85.8 + 5.18 Changes in 0.85.7 + 5.19 Changes in 0.85.6 + 5.20 Changes in 0.85.5 + 5.21 Changes in 0.85.4 + 5.22 Changes in 0.85.3 + 5.23 Changes in 0.85.2 + 5.24 Changes in 0.85.1 6. Copyright 7. Contact @@ -66,17 +67,15 @@ 1. About - QuakeSpasm is a modern, cross- - platform Quake engine based on FitzQuake - . + QuakeSpasm is a modern cross-platform Quake engine based on FitzQuake. It includes support for 64 bit CPUs and custom music playback, a new sound driver, some graphical niceities, and numerous bug-fixes and other improvements. - Quakespasm utilizes either the SDL or SDL2 frameworks, so choose which - one works best for you. SDL is probably less buggy, but SDL2 has - nicer features and smoother mouse input - though no CD support. + Quakespasm utilizes SDL-1.2 or SDL2 frameworks, choose one which works + best for you. SDL2 has nicer features, smoother mouse input and better + support for newer operating systems, but no CD-ROM support. 2. Downloads @@ -131,11 +130,11 @@ o Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG. + o Use the "-noextmusic" option to disable this feature. + o As of 0.90.0, music is played back at 44100 Hz by default with no need to adjust "-sndspeed". - o Use the "-noextmusic" option to disable this feature. - o See Quakespasm-Music.txt for more details. 3.2. Controller Support @@ -266,7 +265,22 @@ 5. Changes - 5.1. Changes in 0.94.5 + 5.1. Changes in 0.94.6 + + o Server protocol size check fixes for sounds and particles. + + o An invalid memory access fix in the jpg screenshot writer. + + o Basic dependency tracking in Makefiles. + + o Backported a few fixes to the bundled SDL2-2.0.22 version. + + o Minor build fix for C++ compilers. + + o Other small improvements elsewhere in the code. + + + 5.2. Changes in 0.94.5 o Compatibility with new SDL2 versioning scheme. @@ -283,7 +297,7 @@ o Backported a few fixes to the bundled SDL2-2.0.22 version. - 5.2. Changes in 0.94.4 + 5.3. Changes in 0.94.4 o Fixed getting stuck with loading plaque upon attempting to load a bad save from the menu @@ -319,7 +333,7 @@ patches. - 5.3. Changes in 0.94.3 + 5.4. Changes in 0.94.3 o Handle sky textures with non-standard sizes and warn about them (e.g. ad_tears) @@ -331,7 +345,7 @@ o Updated included SDL2 to latest version 2.0.18. - 5.4. Changes in 0.94.2 + 5.5. Changes in 0.94.2 o 2021 rerelease: Support for playing the latest update. @@ -342,13 +356,13 @@ o 2021 rerelease: Look for QuakeEX.kpf under userdir, too. - 5.5. Changes in 0.94.1 + 5.6. Changes in 0.94.1 o Fix lightmap issues after vkQuake surface mark/cull optimizations merge (sf.net bug/50) - 5.6. Changes in 0.94.0 + 5.7. Changes in 0.94.0 o Initial support for playing the 'Quake 2021 re-release' content (thanks to Andrei Drexler for bulk of the work, Guillaume Plourde @@ -397,7 +411,7 @@ o Source repository moved to git. - 5.7. Changes in 0.93.2 + 5.8. Changes in 0.93.2 o Lightmaps are now dynamically allocated (from QSS), and BLOCK_WIDTH/HEIGHT raised from 128 to 256. @@ -417,7 +431,7 @@ o Update the third-party libraries. Other fixes/cleanups. - 5.8. Changes in 0.93.1 + 5.9. Changes in 0.93.1 o Fixed a fog regression which was introduced in 0.93.0. @@ -435,7 +449,7 @@ o Update the third-party libraries. Other fixes/cleanups. - 5.9. Changes in 0.93.0 + 5.10. Changes in 0.93.0 o Raise default "joy_deadzone_trigger" cvar to 0.2. @@ -520,7 +534,7 @@ o Update the third-party libraries. - 5.10. Changes in 0.92.1 + 5.11. Changes in 0.92.1 o Fixed large menu scale factors (was broken in 0.92.0). @@ -529,7 +543,7 @@ o Updated some of the third-party libraries. - 5.11. Changes in 0.92.0 + 5.12. Changes in 0.92.0 o SDL2 Game Controller support. @@ -566,9 +580,9 @@ o Updated some of the third-party libraries. Other fixes/clean-ups. - 5.12. Changes in 0.91.0 + 5.13. Changes in 0.91.0 - 5.12.1. Bugfixes + 5.13.1. Bugfixes o Fix unwanted fog mode change upon video restart. @@ -604,7 +618,7 @@ o Prevent a possible vulnerability in MSG_ReadString (old Q1/Q2 bug). - 5.12.2. Visual improvements + 5.13.2. Visual improvements o New cvars r_lavaalpha, r_slimealpha, r_telealpha for fine-tuning specific liquid opacities (from DirectQ/RMQEngine, non-archived, @@ -615,18 +629,18 @@ o GLSL gamma is now supported on older hardware without NPOT extension. - 5.12.3. Interface improvements + 5.13.3. Interface improvements o New r_pos command to show player position. o NaN detection in traceline with "developer 1" set now warns instead of errors. - 5.12.4. Code cleanup / Other + 5.13.4. Code cleanup / Other o Update third-party libraries. - 5.12.5. Raised limits + 5.13.5. Raised limits o Default max_edicts 8192 (was 2048) and no longer saved to config.cfg. @@ -638,9 +652,9 @@ o Raised MAX_SFX to 1024 (was 512). - 5.13. Changes in 0.90.1 + 5.14. Changes in 0.90.1 - 5.13.1. Bugfixes + 5.14.1. Bugfixes o Fix dynamic light artifact where changing lightmap are rendered one frame late (bug introduced in 0.90.0). @@ -663,13 +677,13 @@ o Fix crash on out-of-bounds skin number. - 5.13.2. Performance + 5.14.2. Performance o Use multithreaded OpenGL on OS X for better performance. o New, faster mdl renderer using GLSL. Disable with "-noglslalias". - 5.13.3. Visual improvements + 5.14.3. Visual improvements o New gamma correction implementation using GLSL. Fixes all known gamma issues (affecting the full display, persisting after @@ -683,7 +697,7 @@ o r_noshadow_list cvar added (from MarkV.) - 5.13.4. Interface improvements + 5.14.4. Interface improvements o Support pausing demo playback with the "pause" command. @@ -700,14 +714,14 @@ "trying to load ent", "bad chunk length", "meshing", "PR_AlocStringSlots: realloc'ing" - 5.13.5. Code cleanup + 5.14.5. Code cleanup o Clean up IDE project files to build on fresh systems. o Update 3rd-party libraries. - 5.14. Changes in 0.90.0 + 5.15. Changes in 0.90.0 o Fix issues on Windows systems with DPI scaling. @@ -815,7 +829,7 @@ o Other fixes and clean-ups. - 5.15. Changes in 0.85.9 + 5.16. Changes in 0.85.9 o Fixes for several undefined behaviors in C code (gcc-4.8 support.) @@ -862,7 +876,7 @@ o Several other minor fixes/cleanups. - 5.16. Changes in 0.85.8 + 5.17. Changes in 0.85.8 o Made Quake shareware 1.00 and 1.01 versions to be recognized properly. @@ -909,7 +923,7 @@ o Miscellaneous source code cleanups. - 5.17. Changes in 0.85.7 + 5.18. Changes in 0.85.7 o Added support for cross-level demo playback @@ -935,7 +949,7 @@ o Several other small changes mostly invisible to the end-user - 5.18. Changes in 0.85.6 + 5.19. Changes in 0.85.6 o More work for string buffer safety @@ -948,7 +962,7 @@ o Minor SDL video fixes. - 5.19. Changes in 0.85.5 + 5.20. Changes in 0.85.5 o SDL input driver updated adding native keymap and dead key support to the console @@ -979,7 +993,7 @@ o Several code updates from uHexen2 project, several code cleanups. - 5.20. Changes in 0.85.4 + 5.21. Changes in 0.85.4 o Implement music (OGG, MP3, WAV) playback @@ -1007,7 +1021,7 @@ o Other minor sound and cdaudio updates - 5.21. Changes in 0.85.3 + 5.22. Changes in 0.85.3 o Fix the "-dedicated" option (thanks Oz) and add platform specific networking code (default) rather than SDL_net @@ -1044,7 +1058,7 @@ some other CD tweaks. - 5.22. Changes in 0.85.2 + 5.23. Changes in 0.85.2 o Replace the old "Screen size" slider with a "Scale" slider @@ -1072,7 +1086,7 @@ o Add OSX Makefile (tested?) - 5.23. Changes in 0.85.1 + 5.24. Changes in 0.85.1 o 64 bit CPU support @@ -1128,8 +1142,8 @@ o Bug reports: https://sourceforge.net/p/quakespasm/bugs/ - o Ozkan - Eric + o Ozkan + Eric Sander diff --git a/Windows/SDL2/include/SDL_assert.h b/Windows/SDL2/include/SDL_assert.h index 427c4c63..e71cf979 100644 --- a/Windows/SDL2/include/SDL_assert.h +++ b/Windows/SDL2/include/SDL_assert.h @@ -71,7 +71,7 @@ assert can have unique static variables associated with it. #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ # define SDL_FUNCTION __func__ -#elif ((__GNUC__ >= 2) || defined(_MSC_VER) || defined (__WATCOMC__)) +#elif ((defined(__GNUC__) && (__GNUC__ >= 2)) || defined(_MSC_VER) || defined (__WATCOMC__)) # define SDL_FUNCTION __FUNCTION__ #else # define SDL_FUNCTION "???" diff --git a/Windows/SDL2/include/SDL_revision.h b/Windows/SDL2/include/SDL_revision.h index b981c094..dd918507 100644 --- a/Windows/SDL2/include/SDL_revision.h +++ b/Windows/SDL2/include/SDL_revision.h @@ -1,2 +1,2 @@ -#define SDL_REVISION "@1594e60f8c154d3c8cea175fe88694e5aaf5e7bc" +#define SDL_REVISION "@a788189020ac220e3c44e1383e0a1621b3309f8f" #define SDL_REVISION_NUMBER 0 diff --git a/Windows/SDL2/include/SDL_surface.h b/Windows/SDL2/include/SDL_surface.h index 44123761..838de654 100644 --- a/Windows/SDL2/include/SDL_surface.h +++ b/Windows/SDL2/include/SDL_surface.h @@ -61,6 +61,8 @@ extern "C" { */ #define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0) +typedef struct SDL_BlitMap SDL_BlitMap; /* this is an opaque type. */ + /** * \brief A collection of pixels used in software blitting. * @@ -88,7 +90,7 @@ typedef struct SDL_Surface SDL_Rect clip_rect; /**< Read-only */ /** info for fast blit mapping to other surfaces */ - struct SDL_BlitMap *map; /**< Private */ + SDL_BlitMap *map; /**< Private */ /** Reference count -- used when freeing surface */ int refcount; /**< Read-mostly */ diff --git a/Windows/SDL2/include/begin_code.h b/Windows/SDL2/include/begin_code.h index b1b1a3a9..67055678 100644 --- a/Windows/SDL2/include/begin_code.h +++ b/Windows/SDL2/include/begin_code.h @@ -34,7 +34,7 @@ #define _begin_code_h #ifndef SDL_DEPRECATED -# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ +# if defined(__GNUC__) && (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ # define SDL_DEPRECATED __attribute__((deprecated)) # else # define SDL_DEPRECATED diff --git a/Windows/SDL2/lib/SDL2.dll b/Windows/SDL2/lib/SDL2.dll index 984bf724..73d48e2e 100644 Binary files a/Windows/SDL2/lib/SDL2.dll and b/Windows/SDL2/lib/SDL2.dll differ diff --git a/Windows/SDL2/lib64/SDL2.dll b/Windows/SDL2/lib64/SDL2.dll index 8a740a96..d135d53c 100644 Binary files a/Windows/SDL2/lib64/SDL2.dll and b/Windows/SDL2/lib64/SDL2.dll differ