Skip to content

Fixes - #2

Open
toymak3r wants to merge 61 commits into
FromAbyssStudio:masterfrom
andrei-drexler:master
Open

Fixes#2
toymak3r wants to merge 61 commits into
FromAbyssStudio:masterfrom
andrei-drexler:master

Conversation

@toymak3r

Copy link
Copy Markdown
Member

No description provided.

@toymak3r toymak3r self-assigned this Oct 30, 2025
jjelliott and others added 25 commits November 12, 2025 23:02
Changes `r_md5` to `r_enhancedmodels` and adds a second cvar
`r_enhancedmodels_priority` with a comma separated value for loaders to
use, allowing for further extension in the future.
due to invalid derivatives in pixel quads containing discarded pixels
caused by cubemap textures storing pointers to stack data
by decoding normals in the vertex shader
by decoding positions in the vertex shader
MDL code needed to be able to remap both the original vertex and a version of it with an UV seam adjustment applied. Since seam adjustments are not needed for MD3, we can use a smaller remapping table.
Needed for the invoker on NV now that vertices are only 8 bytes, which is smaller than the SSBO alignment requirement (16 bytes).
(e.g. when SCR_ModalMessage is called)
MDL/MD3 blend shape data is now first split by frame, then by surface.
This allows us to bind buffers per model, instead of per surface.

Other changes:
- MD5 bone pose data is only allocated once, for the main surface, rather than duplicated for all surfaces
- removed numboneposes field and reused numposes, since MD5 models don't support blend shapes
- removed MD3-specific uniforms; the only difference now between MDL and MD3 is vertex decoding
- corrected allocation size in Mod_LoadMD5MeshModel
New command "enable alt modifier". When bound to a button/key, all
other buttons turn from K_x_BTN to K_x_BTN_ALT, allowing 2 bindings
on the same button, one with the 'alt' pressed and one without.
If K_x_BTN_ALT is not bound, it will use the bind from K_x_BTN as
fallback, if exists.
(fixes Node 20 deprecation warnings)
Previously, the code would fall through to the brush model
path, which would then emit an "unsupported version number"
error.

The new code suggests referencing the MDL version instead
and briefly mentions the reasoning behind this requirement
(MD3 being an optional enhanced format in order to preserve
compatibility with other source ports).
Some BSPs, such as [Mcmdm04.bsp](https://www.quakeone.com/qrack/maps/Mcmdm04.bsp) and [Jvoxdm3.bsp](https://www.quakeone.com/qrack/maps/Jvoxdm3.bsp) don't contain a NUL terminator.
They happened to work previously because Hunk_Alloc rounds up the buffer size to a multiple of 16, which gives the subsequent buffer zeroing a high (but not 100%) chance of appending a NUL terminator.
Removing the otherwise redundant zeroing lead to spurious parse errors, depending on the existing contents of the padding.
by also overriding fopen for stbiw, not just lodepng
since there are cvars/menu options now for the quit confirmation prompt (cl_confirmquit) and startup demos (cl_startdemos), and the remaining differences (engine pak loading and scoreboard format) aren't worth maintaining a separate code path

Notes:
- the engine pak is much lighter compared to QS (no custom console background or ent files), so skipping it just disables UI features that rely on custom gfx (levels/mods menus) and the default.cfg override
- the QS scoreboard format doesn't include elapsed time, so now we force enable the separate clock display (normally controlled by scr_clock) for as long as TAB is pressed
Fixes crash with incorrect bone count for progs/ogre_rocket.md5anim from MG3 (2026 update)
controlling the scale of r_showfields/r_showbboxes text

Default value: 2.0
When mg3 is used with original (not rerelease) id1 data `scr_usekfont` doesn't get set to 1 in quake.rc. However, the mg3 start map has text that relies on word wrapping, which we only enable when scr_usekfont is 1 in order to avoid introducing further compatibility issues.
Useful for distinguishing internal strings from external ones
from ~2.8ms down to ~0.4ms on a map with 2048 grunts on a 7800x3d
Note: no support for loc_XXX_mod.txt at the moment
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants