Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a0a8bca
Route extra texture types to developer > 1 (#386)
jjelliott Oct 26, 2025
c03a5bd
Fix up console selection to avoid crash on copy (#415)
andrei-drexler Oct 26, 2025
dc4b79a
Live preview for "Quit Prompt" option
andrei-drexler Oct 26, 2025
08c280e
Show map title in intermission screen
andrei-drexler Oct 28, 2025
6f9777c
Use more sensible strategy for PR builds
jjelliott Oct 27, 2025
f63d787
Add MD3 loading as an additional "Remastered" model type
jjelliott Oct 28, 2025
855c477
Change version to 0.8.1
andrei-drexler Jan 1, 2026
a223bf6
Add download button to the main page
andrei-drexler Jan 4, 2026
54876ea
Change version to 0.8.2-dev
andrei-drexler Jan 7, 2026
017fdd2
Fix dark outlines on dynamically-lit fence textures (#475)
andrei-drexler Jan 9, 2026
80387f1
Fix crash when toggling gl_compress_textures (#476)
andrei-drexler Jan 10, 2026
74d8e74
Disable compression for 2D textures (HUD, conchars)
andrei-drexler Jan 10, 2026
1011ff8
Disable compression for alpha-tested textures
andrei-drexler Jan 10, 2026
a9ff8b1
MD3: Use gl_VertexID instead of custom attribute
andrei-drexler Jan 10, 2026
76af83c
MD3: Reduce vertex size from 32B to 16B
andrei-drexler Jan 10, 2026
e8b74f9
MD3: Reduce vertex size from 16B to 8B
andrei-drexler Jan 10, 2026
fb7fcde
MD3: Bake scale into model transform
andrei-drexler Jan 10, 2026
ce8ac15
Fix shader compilation on Nvidia GPUs
andrei-drexler Jan 10, 2026
adcd11e
MD3: Reduce temporary vertex remap table size by 50%
andrei-drexler Jan 10, 2026
c5f3f7d
MD3: Ensure SSBO alignment for each surface offset
andrei-drexler Jan 10, 2026
df5219c
Change default value for scr_centerprintbg to 2 (menu box)
andrei-drexler Jan 10, 2026
017b6a4
Remove vestigial function declaration
andrei-drexler Jan 11, 2026
6ff1031
snd_mix.c: Made more globals static
andrei-drexler Jan 11, 2026
78ad272
Stop controller rumble when sound buffer is cleared
andrei-drexler Jan 11, 2026
2e04278
MD3: Use explicit uniform locations
andrei-drexler Jan 11, 2026
78d7d83
Fix shader compilation error on Radeon HD 6700
andrei-drexler Jan 14, 2026
a65a88e
Reorganized alias model GPU data
andrei-drexler Jan 14, 2026
c0e587b
Allow second layer of keybindings for gamepads (#448)
protocultor Nov 2, 2025
7a2038a
Add menu support for alt gamepad bindings
andrei-drexler Jan 17, 2026
6a9610f
Only auto-repeat navigational keys in menus
andrei-drexler Jan 18, 2026
3ccbcda
Fix bmodel buffer leak (#489)
andrei-drexler Feb 4, 2026
51a911b
Support dirs with spaces in Mods menu (#501)
andrei-drexler Mar 22, 2026
0a6084a
Stop pitch drift during cutscenes
andrei-drexler Apr 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/windows_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
& $msbuild Windows\VisualStudio\ironwail.sln $options
if (-not $?) { throw "Build failed" }
- name: Prepare archive
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
run: |
$compiledir = "Windows\VisualStudio\${env:BUILD_DIR}"
$zipdir = "artifact\${env:BUILD_ARTIFACT}"
Expand All @@ -50,8 +49,7 @@ jobs:
copy Quakespasm-Music.txt $zipdir
copy LICENSE.txt $zipdir
- name: Upload archive
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
uses: actions/upload-artifact@v4
with:
name: ${{ env.BUILD_ARTIFACT }}
name: ${{ (github.event_name == 'pull_request' || github.ref_name != 'master') && 'CAUTION-WIP-' || '' }}${{ env.BUILD_ARTIFACT }}
path: artifact/*
3 changes: 3 additions & 0 deletions Quake/cl_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,10 @@ void CL_AdjustAngles (void)
float up, down;

if (CL_InCutscene ())
{
V_StopPitchDrift ();
return;
}

if ((in_speed.state & 1) ^ (cl_alwaysrun.value != 0.0))
speed = host_frametime * cl_anglespeedkey.value;
Expand Down
10 changes: 10 additions & 0 deletions Quake/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,16 @@ qboolean Cmd_IsReservedName (const char *name)
return name[0] == '_' && name[1] == '_';
}

/*
============
Cmd_IsGamepadAltModifier
============
*/
qboolean Cmd_IsGamepadAltModifier (const char *name)
{
return name && !strcmp (name, "+altmodifier");
}

/*
============
Cmd_List_f -- johnfitz
Expand Down
1 change: 1 addition & 0 deletions Quake/cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ void Cmd_ForwardToServer (void);
// so when they are typed in at the console, they will need to be forwarded.

qboolean Cmd_IsReservedName (const char *name);
qboolean Cmd_IsGamepadAltModifier (const char *name);

#endif /* _QUAKE_CMD_H */

18 changes: 18 additions & 0 deletions Quake/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -1959,6 +1959,24 @@ static int COM_FindFile (const char *filename, int *handle, FILE **file,

if (strcmp(ext, "pcx") != 0 &&
strcmp(ext, "tga") != 0 &&
strcmp(ext, "png") != 0 &&
strcmp(ext, "jpg") != 0 &&
strcmp(ext, "lmp") != 0 &&
// music formats
strcmp (ext, "ogg") != 0 &&
strcmp (ext, "opus") != 0 &&
strcmp (ext, "flac") != 0 &&
strcmp (ext, "wav") != 0 &&
strcmp (ext, "it") != 0 &&
strcmp (ext, "s3m") != 0 &&
strcmp (ext, "xm") != 0 &&
strcmp (ext, "mod") != 0 &&
strcmp (ext, "umx") != 0 &&
// alternate model formats
strcmp(ext, "md5mesh") != 0 &&
strcmp (ext, "md3") != 0 &&
strcmp (ext, "skin") != 0 &&
// optional map files
strcmp(ext, "lit") != 0 &&
strcmp(ext, "vis") != 0 &&
strcmp(ext, "ent") != 0)
Expand Down
12 changes: 12 additions & 0 deletions Quake/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,18 @@ static void Con_ApplyMouseSelection (void)
con_selection.end = tmp;
}

// If the starting point is beyond the newline, move to the beginning of the next line
line = Con_GetLine (con_selection.begin.line);
len = (int) Con_StrLen (con_selection.begin.line);
if (con_selection.begin.col > len)
{
con_selection.begin.line++;
con_selection.begin.col = 0;
// Fix up the end point if necessary
if (Con_OfsCompare (&con_selection.begin, &con_selection.end) > 0)
con_selection.end = con_selection.begin;
}

// Selecting character by character? Nothing left to do
if (con_mouseclicks <= 1)
return;
Expand Down
14 changes: 7 additions & 7 deletions Quake/gl_draw.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ Scrap_Upload -- johnfitz -- now uses TexMgr
void Scrap_Upload (void)
{
scrap_texture = TexMgr_LoadImage (NULL, "scrap", SCRAP_ATLAS_WIDTH, SCRAP_ATLAS_HEIGHT, SRC_INDEXED, scrap_texels,
"", (src_offset_t)scrap_texels, TEXPREF_ALPHA | TEXPREF_OVERWRITE | TEXPREF_NOPICMIP);
"", (src_offset_t)scrap_texels, TEXPREF_ALPHA | TEXPREF_OVERWRITE | TEXPREF_NOPICMIP | TEXPREF_UNCOMPRESSED);
scrap_dirty = false;
}

Expand Down Expand Up @@ -343,7 +343,7 @@ qpic_t *Draw_PicFromWad2 (const char *name, unsigned int texflags)

qpic_t *Draw_PicFromWad (const char *name)
{
return Draw_PicFromWad2 (name, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP);
return Draw_PicFromWad2 (name, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP | TEXPREF_UNCOMPRESSED);
}

/*
Expand Down Expand Up @@ -412,7 +412,7 @@ qpic_t *Draw_TryCachePic (const char *path, unsigned int texflags)

qpic_t *Draw_CachePic (const char *path)
{
qpic_t *pic = Draw_TryCachePic(path, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP | TEXPREF_CLAMP);
qpic_t *pic = Draw_TryCachePic(path, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP | TEXPREF_CLAMP | TEXPREF_UNCOMPRESSED);
if (!pic)
Sys_Error ("Draw_CachePic: failed to load %s", path);
return pic;
Expand All @@ -425,7 +425,7 @@ Draw_MakePic -- johnfitz -- generate pics from internal data
*/
qpic_t *Draw_MakePic (const char *name, int width, int height, byte *data)
{
int flags = TEXPREF_NEAREST | TEXPREF_ALPHA | TEXPREF_PERSIST | TEXPREF_NOPICMIP | TEXPREF_PAD;
int flags = TEXPREF_NEAREST | TEXPREF_ALPHA | TEXPREF_PERSIST | TEXPREF_NOPICMIP | TEXPREF_PAD | TEXPREF_UNCOMPRESSED;
qpic_t *pic;
glpic_t gl;

Expand Down Expand Up @@ -476,10 +476,10 @@ void Draw_LoadPics (void)
char_texture_data + row*(16*10*10) + col*10, 16*10);
}
char_texture = TexMgr_LoadImage (NULL, WADFILENAME":conchars", 16*10, 16*10, SRC_INDEXED, char_texture_data,
"", (src_offset_t) char_texture_data, TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_NOPICMIP | TEXPREF_CONCHARS);
"", (src_offset_t) char_texture_data, TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_NOPICMIP | TEXPREF_CONCHARS | TEXPREF_UNCOMPRESSED);

draw_disc = Draw_PicFromWad ("disc");
draw_backtile = Draw_PicFromWad2 ("backtile", TEXPREF_ALPHA | TEXPREF_NOPICMIP); // no pad flag to force separate allocation
draw_backtile = Draw_PicFromWad2 ("backtile", TEXPREF_ALPHA | TEXPREF_NOPICMIP | TEXPREF_UNCOMPRESSED); // no pad flag to force separate allocation
}

/*
Expand Down Expand Up @@ -526,7 +526,7 @@ static void Draw_CreateWinQuakeMenuBgTex (void)

winquakemenubg = TexMgr_LoadImage (NULL, "winquakemenubg", 4, 2, SRC_RGBA,
(byte*)winquakemenubg_pixels, "", (src_offset_t)winquakemenubg_pixels,
TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_PERSIST | TEXPREF_NOPICMIP
TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_PERSIST | TEXPREF_NOPICMIP | TEXPREF_UNCOMPRESSED
);
}

Expand Down
Loading