Vulkan Quake port based on QuakeSpasm
This report summarizes scanner evidence for Novum/vkQuake, a C project with 2,313 GitHub stars. SynthScan examined 312,316 lines of code across 411 source files, recording 1278 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 3.0 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1278 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 0 finding(s).
Which changes need focused human review? 1278 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1278 distinct pattern matches across 4 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Quake/q_stdinc.h | 61 | #include "msinttypes/stdint.h" | COMMENT |
| LOW | Quake/q_stdinc.h | 161 | #define PATH_MAX MAXPATHLEN | COMMENT |
| LOW | Quake/q_stdinc.h | 181 | COMMENT | |
| LOW | Quake/q_stdinc.h | 201 | #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 3)) | COMMENT |
| LOW | Quake/q_stdinc.h | 221 | #endif | COMMENT |
| LOW | Quake/q_stdinc.h | 241 | #endif | COMMENT |
| LOW | Quake/lodepng.h | 101 | #define LODEPNG_COMPILE_CRC | COMMENT |
| LOW | Quake/protocol.h | 21 | */ | COMMENT |
| LOW | Quake/protocol.h | 41 | #define PRFL_EDICTSCALE (1 << 5) | COMMENT |
| LOW | Quake/protocol.h | 61 | #define U_ORIGIN1 (1 << 1) | COMMENT |
| LOW | Quake/protocol.h | 81 | #define U_MODEL2 (1 << 18) // 1 byte, this is .modelindex & 0xFF00 (second byte) | COMMENT |
| LOW | Quake/protocol.h | 101 | #define UF_PREDINFO (1u << 6) /*ent is predicted, probably a player*/ | COMMENT |
| LOW | Quake/protocol.h | 121 | #define UF_TRAILEFFECT (1u << 22) /*attaches custom particle trails to entities, woo.*/ | COMMENT |
| LOW | Quake/protocol.h | 141 | #define UFP_WEAPONFRAME_OLD (1u << 7) // no longer used. just a stat now that I rewrote stat deltas. | COMMENT |
| LOW | Quake/protocol.h | 161 | #define SU_EXTEND1 (1 << 15) // another byte to follow | COMMENT |
| LOW | Quake/protocol.h | 181 | // spike | COMMENT |
| LOW | Quake/protocol.h | 201 | // spike | COMMENT |
| LOW | Quake/protocol.h | 221 | COMMENT | |
| LOW | Quake/protocol.h | 241 | #define svc_updatestat 3 // [byte] [long] | COMMENT |
| LOW | Quake/protocol.h | 261 | #define svc_updatecolors 17 // [byte] [byte] | COMMENT |
| LOW | Quake/protocol.h | 281 | // johnfitz -- PROTOCOL_FITZQUAKE -- new server messages | COMMENT |
| LOW | Quake/protocol.h | 301 | #define svc_achievement 52 // [string] id | COMMENT |
| LOW | Quake/protocol.h | 321 | #define svcdp_entities 57 | COMMENT |
| LOW | Quake/protocol.h | 341 | #define clc_disconnect 2 | COMMENT |
| LOW | Quake/common.c | 21 | */ | COMMENT |
| LOW | Quake/bspfile.h | 21 | */ | COMMENT |
| LOW | Quake/bspfile.h | 41 | #define MAX_MAP_MARKSURFACES 65535 | COMMENT |
| LOW | Quake/bspfile.h | 81 | COMMENT | |
| LOW | Quake/bspfile.h | 161 | #define CONTENTS_SOLID -2 | COMMENT |
| LOW | Quake/glquake.h | 41 | // Waits until the CPU has submitted the frame. The GPU may still be drawing it. | COMMENT |
| LOW | Quake/glquake.h | 181 | } vulkan_memory_type_t; | COMMENT |
| LOW | Quake/miniz.c | 3121 | #define MZ_FOPEN mz_fopen | COMMENT |
| LOW | Quake/miniz.c | 3141 | #endif | COMMENT |
| LOW | Quake/miniz.c | 3161 | #define MZ_FWRITE fwrite | COMMENT |
| LOW | Quake/miniz.c | 3181 | #define MZ_FILE_STAT stat64 | COMMENT |
| LOW | Quake/miniz.c | 3201 | COMMENT | |
| LOW | Quake/net.h | 81 | // returns 2 if an unreliable message was received | COMMENT |
| LOW | Quake/snd_mpg123.c | 21 | COMMENT | |
| LOW | Quake/quakever.h | 21 | #ifndef QUAKEVER_H | COMMENT |
| LOW | Quake/quakever.h | 41 | #define VKQUAKE_VERSION 1.37 | COMMENT |
| LOW | Quake/stb_image_write.h | 161 | #ifndef _CRT_NONSTDC_NO_DEPRECATE | COMMENT |
| LOW | Quake/stb_image_write.h | 181 | #endif | COMMENT |
| LOW | Quake/snd_codec.c | 21 | * with this program; if not, write to the Free Software Foundation, Inc., | COMMENT |
| LOW | Quake/mdfour.c | 61 | /* NOTE: This code makes no attempt to be fast! | COMMENT |
| LOW | Quake/sv_main.c | 161 | // #define UF_UNUSED UF_EXTEND2 /**/ | COMMENT |
| LOW | Quake/sys_sdl_win.c | 21 | COMMENT | |
| LOW | Quake/cfgfile.h | 21 | COMMENT | |
| LOW | Quake/mem.c | 21 | COMMENT | |
| LOW | Quake/mem.c | 41 | // activate mimalloc debug and guarded pages: | COMMENT |
| LOW | Quake/steam.c | 21 | // steam.c -- Steam/GOG/Epic Games Store config parsing, from Ironwail | COMMENT |
| LOW | Quake/stb_image_resize2.h | 401 | typedef uint16_t stbir_uint16; | COMMENT |
| LOW | Quake/stb_image_resize2.h | 421 | // Easy-to-use API: | COMMENT |
| LOW | Quake/stb_image_resize2.h | 541 | // * Separate edge modes for each axis | COMMENT |
| LOW | Quake/stb_image_resize2.h | 641 | // types of resizes. | COMMENT |
| LOW | Quake/stb_image_resize2.h | 661 | // And this is the main function to perform the resize synchronously on one thread. | COMMENT |
| LOW | Quake/stb_image_resize2.h | 681 | COMMENT | |
| LOW | Quake/stb_image_resize2.h | 701 | // your own data. | COMMENT |
| LOW | Quake/stb_image_resize2.h | 721 | // CopyOrStreamData( optional_output, other_data_src, num_pixels * pixel_width_in_bytes ); | COMMENT |
| LOW | Quake/stb_image_resize2.h | 781 | //// end header file ///////////////////////////////////////////////////// | COMMENT |
| LOW | Quake/stb_image_resize2.h | 801 | COMMENT | |
| 1210 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Quake/sv_phys.c | 723 | // 0=off; 1=legacy DIST_EPSILON nudge, clients only; 2=legacy nudge, all entities; 3=robust pusher contact (default) | COMMENT |
| MEDIUM | Quake/sv_phys.c | 1651 | // remove the onground flag for non-players. riders keep it under robust | COMMENT |
| MEDIUM | Quake/mimalloc/prim/osx/alloc-override-zone.c | 438 | // it seems less robust than using interpose. | COMMENT |
| LOW | Windows/SDL3/include/SDL3/SDL_main_impl.h | 134 | #else /* platforms that use a standard main() and just call SDL_RunApp(), like iOS and 3DS */ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Quake/pr_ext.c | 65 | // one funky way is to allocate a single large buffer and just concatenate it for more tempstring space. don't forget to | COMMENT |
| LOW | Quake/lodepng.c | 72 | lodepng source code. Don't forget to remove "static" if you copypaste them | CODE |
| LOW | Windows/SDL3/include/SDL3/SDL_process.h | 39 | * Don't forget to call SDL_DestroyProcess() to clean up, whether the process | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Quake/mimalloc/options.c | 620 | // TODO: implement ourselves to reduce dependencies on the C runtime | COMMENT |