Skip to content

Fixes#2

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

Fixes#2
toymak3r wants to merge 43 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.
This reduces sound spam and, for gamepads, rumble spam.
Particularly noticeable while holding +altmodifier when changing bindings.
This avoids continuous view angle jitter after using "centerview" during a cinematic camera sequence (e.g. test_misc_camera in ad)
loaded from an optional bindlist.lst file

The first two items on each line must be two quoted strings,
the key binding command and its UI description
e.g.
```
"+attack"         "attack"
"impulse 10"      "change weapon"
```
(see https://github.com/JosiahJack/Keep/blob/4c3d21b150f5a6bce85f7786980f8b28b71c2380/bindlist.lst)

Note: unlike QSS, custom entries are merged with the built-in
ones instead of completely replacing them.
(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
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