Skip to content

Commit

Permalink
Merge remote-tracking branch 'yquake2/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
0lvin committed Aug 8, 2024
2 parents 1a02a64 + 8cc3361 commit 7d3545a
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 53 deletions.
77 changes: 43 additions & 34 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,43 @@ Quake 2 8.41RR8:
- Full support pcx version 5 format,
- Rework image load code.

Quake II 8.40 to 8.41:
- Fix an endless loop in the OpenGL 1.4 renderer crashing the game and
blocking further progress under some circumstances. (by protocultor)
- Don't force a platform dependend, hard coded SDL audio driver, let SDL
choose the driver instead. This may fix the SDL audio backend on some
platforms. The driver can still be overridden by setting `s_sdldriver`
to something else than `auto`. Under Windows `s_sdldriver` defaults
`directsound` because `auto` may choose an incompatible driver.

Quake II 8.30 to 8.40:
- Implement `g_quick_weap`. If set to 1, both weapprev and weapnext
commands will count how many times they have been called, making
possible to skip weapons by quickly tapping one of these keys. (by
protocultor)
- Fix `gl1_overbrightbits`, allowed values are now 0, 1, 2 and 4. (by
protocultor)
- Sort player skins case insensitive. (by apartfromtime)
- Implement `cl_showspeed` to show the current player speed (by Feels
Duck Man)
- Add texture filtering options to the video menu (by apartfromtime)
- Implement `cl_laseralpha` to control how transparent laser beams are.
(by BjossiAlfreds)
- Experimental support for SDL 3. Requires SDL 3.1.2.
- Reimplement multitexturing for the OpenGL 1.4 renderer. Controlled by
`gl1_multitexture`, enabled by default. (by protocultor)
- Optimize dynamic lights and texture allocation in the OpenGL 1.4
renderer. (by protocultor)
- Implement gyro tightening for gamepads and joysticks. (by protocultor)
- Support long player skin names. (by 0lvin)
- Add a very simple download filter. Files ending in .dll, .dylib and
.so are always filtered to prevent code injection.
- Don't load OpenAL and cURL libraries if thy are configured with a full
or relative path.
- Work around naggy help icons. (by BjossiAlfreds)
- Group draw call in GL1. This yields huge performance gains on slow
GPUs. (by protocultor)

Quake 2 8.31RR8:
- GL1 multitexture support (by Jaime Moreira),
- GL1 big lightmap support (by Jaime Moreira),
Expand Down Expand Up @@ -66,40 +103,6 @@ Quake 2 8.31RR2:
- Merge hud/players code with ctf code,
- Support Shambler, Guardian monsters.

Quake 2 8.21RR1:
- Suport mdl/fm/dkm models,
- Support ogv video by ffmpeg,
- Start merge ctf, xatrix, rogue to baseq2 code
- Support remastered maps in gl1/vk

Quake II 8.30 to 8.40:
- Implement `g_quick_weap`. If set to 1, both weapprev and weapnext
commands will count how many times they have been called, making
possible to skip weapons by quickly tapping one of these keys. (by
protocultor)
- Fix `gl1_overbrightbits`, allowed values are now 0, 1, 2 and 4. (by
protocultor)
- Sort player skins case insensitive. (by apartfromtime)
- Implement `cl_showspeed` to show the current player speed (by Feels
Duck Man)
- Add texture filtering options to the video menu (by apartfromtime)
- Implement `cl_laseralpha` to control how transparent laser beams are.
(by BjossiAlfreds)
- Experimental support for SDL 3. Requires SDL 3.1.2.
- Reimplement multitexturing for the OpenGL 1.4 renderer. Controlled by
`gl1_multitexture`, enabled by default. (by protocultor)
- Optimize dynamic lights and texture allocation in the OpenGL 1.4
renderer. (by protocultor)
- Implement gyro tightening for gamepads and joysticks. (by protocultor)
- Support long player skin names. (by 0lvin)
- Add a very simple download filter. Files ending in .dll, .dylib and
.so are always filtered to prevent code injection.
- Don't load OpenAL and cURL libraries if thy are configured with a full
or relative path.
- Work around naggy help icons. (by BjossiAlfreds)
- Group draw call in GL1. This yields huge performance gains on slow
GPUs. (by protocultor)

Quake II 8.20 to 8.30:
- Use the same image loading code in all renderers. (by 0lvin)
- Use the same model loading code in all renderers. (by 0lvin)
Expand Down Expand Up @@ -131,6 +134,12 @@ Quake II 8.20 to 8.30:
- Support of RGBA png/jpg image with r_retexturing as cinematic. (by
0lvin)

Quake 2 8.21RR1:
- Suport mdl/fm/dkm models,
- Support ogv video by ffmpeg,
- Start merge ctf, xatrix, rogue to baseq2 code
- Support remastered maps in gl1/vk

Quake II 8.10 to 8.20:
- This release marks Quake IIs 25th anniversary. Happy Birthday!
- Various improvements to the menu. This includes updates to the menu
Expand Down
6 changes: 6 additions & 0 deletions doc/040_cvarlist.md
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,12 @@ it's `+set busywait 0` (setting the `busywait` cvar) and `-portable`
is much more reliable than the classic sound system, especially on
modern systems like Windows 10 or Linux with PulseAudio.

* **s_sdldriver**: Can be set to the name of a SDL audio driver. If set
to `auto`, SDL chooses the driver. If set to anything else the given
driver is forced, regardless if supported by SDL or the platform or
not. By default set to `directsound` under Windows and `auto` on all
other platforms.

* **s_underwater**: Dampen sounds if submerged. Enabled by default.

* **s_occlusion_strength**: If set bigger than `0` sound occlusion effects
Expand Down
35 changes: 16 additions & 19 deletions src/client/sound/sdl.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
#define SDL_LOOPATTENUATE 0.003

/* Globals */
static cvar_t *s_sdldriver;
static int *snd_p;
static sound_t *backend;
static portable_samplepair_t paintbuffer[SDL_PAINTBUFFER_SIZE];
Expand Down Expand Up @@ -1352,18 +1351,17 @@ SDL_BackendInit(void)
int sndfreq = (Cvar_Get("s_khz", "44", CVAR_ARCHIVE))->value;
int sndchans = (Cvar_Get("sndchannels", "2", CVAR_ARCHIVE))->value;

#ifdef _WIN32
s_sdldriver = (Cvar_Get("s_sdldriver", "directsound", CVAR_ARCHIVE));
#elif __linux__
s_sdldriver = (Cvar_Get("s_sdldriver", "alsa", CVAR_ARCHIVE));
#elif __APPLE__
s_sdldriver = (Cvar_Get("s_sdldriver", "CoreAudio", CVAR_ARCHIVE));
#if _WIN32
cvar_t *s_sdldriver = (Cvar_Get("s_sdldriver", "directsound", CVAR_ARCHIVE));
#else
s_sdldriver = (Cvar_Get("s_sdldriver", "dsp", CVAR_ARCHIVE));
cvar_t *s_sdldriver = (Cvar_Get("s_sdldriver", "auto", CVAR_ARCHIVE));
#endif

snprintf(reqdriver, sizeof(reqdriver), "%s=%s", "SDL_AUDIODRIVER", s_sdldriver->string);
putenv(reqdriver);
if (strcmp(s_sdldriver->string, "auto") != 0)
{
snprintf(reqdriver, sizeof(reqdriver), "%s=%s", "SDL_AUDIODRIVER", s_sdldriver->string);
putenv(reqdriver);
}

Com_Printf("Starting SDL audio callback.\n");

Expand Down Expand Up @@ -1519,18 +1517,17 @@ SDL_BackendInit(void)
int sndfreq = (Cvar_Get("s_khz", "44", CVAR_ARCHIVE))->value;
int sndchans = (Cvar_Get("sndchannels", "2", CVAR_ARCHIVE))->value;

#ifdef _WIN32
s_sdldriver = (Cvar_Get("s_sdldriver", "directsound", CVAR_ARCHIVE));
#elif __linux__
s_sdldriver = (Cvar_Get("s_sdldriver", "alsa", CVAR_ARCHIVE));
#elif __APPLE__
s_sdldriver = (Cvar_Get("s_sdldriver", "CoreAudio", CVAR_ARCHIVE));
#if _WIN32
cvar_t *s_sdldriver = (Cvar_Get("s_sdldriver", "directsound", CVAR_ARCHIVE));
#else
s_sdldriver = (Cvar_Get("s_sdldriver", "dsp", CVAR_ARCHIVE));
cvar_t *s_sdldriver = (Cvar_Get("s_sdldriver", "auto", CVAR_ARCHIVE));
#endif

snprintf(reqdriver, sizeof(reqdriver), "%s=%s", "SDL_AUDIODRIVER", s_sdldriver->string);
putenv(reqdriver);
if (strcmp(s_sdldriver->string, "auto") != 0)
{
snprintf(reqdriver, sizeof(reqdriver), "%s=%s", "SDL_AUDIODRIVER", s_sdldriver->string);
putenv(reqdriver);
}

Com_Printf("Starting SDL audio callback.\n");

Expand Down

0 comments on commit 7d3545a

Please sign in to comment.