Files
runi-dist/docs/technology-scan.md

5.2 KiB

Technology Scan

Technology Scan builds an evidence-based inventory for each game. Its guiding rule is:

Local analysis and PCGamingWiki are automatic; the inventory is complete; Overview contains the expandable summary; runtime observation is explicit. Recipe recommendations are a consequence of the inventory, not a separate scanner.

Evidence sources

The local scan stays inside the registered installation root. It inspects filenames, directory conventions, Windows PE imports, the PE version resource of known upscaler and frame-generation DLLs, and a bounded set of small text logs. It recognises graphics APIs, upscalers and frame generation, engines, audio/physics middleware, anti-cheat and DRM, and compatibility-loader markers (LinUwUx). It does not scan the full Wine prefix, follow external symlinks or unpack large game archives such as .pak files; those would introduce unrelated evidence, especially in shared prefixes.

Community evidence comes from the official PCGamingWiki MediaWiki API. Runi queries by a known store identity before trying an exact canonical title, identifies itself with a project user-agent, observes the service rate limit and caches responses for seven days. A network failure never blocks registration or launch.

SteamDB has no public API and explicitly disallows automated scraping. Runi therefore provides only an Open in SteamDB link for manual research.

A filename identifies a technology family, never its version. One filename is shared across versions - amd_fidelityfx_upscaler_dx12.dll is the FidelityFX SDK 2.x name for FSR 3.1 and FSR 4.x alike - so the version is read from the binary's own version resource and reported in the finding's version field, with the vendor's full build string kept in the evidence line. A missing pefile, a binary without a version resource or a non-numeric version all degrade to a finding with no version rather than to a guess.

For an FSR 4 capable upscaler DLL the scan also records which model weights are embedded (fp8, int8). That is evidence, not a verdict: it is what decides whether a game's own FSR 4 path can run on a given GPU generation at all. Runi does not compare it against the local hardware.

Files recorded in Runi's own OptiScaler and Customize manifests are ignored as evidence. Installing a recipe must not make the next scan claim that the technology originally belonged to the game.

LinUwUx-compatible-loader markers (reflex.ini/reflex.dll/reflex64.dll, DenuvOwO.ini/DenuvOwO.dll) are a dedicated compat_shim category, kept separate from anti_cheat/drm so a finding never affects recommendations_for()'s existing anti-cheat-gated OptiScaler suppression. winmm.dll/version.dll are deliberately excluded from this rule set even though LinUwUx's own detection also looks for them: both are generic proxy-DLL names also used by unrelated mods, including Runi's own OptiScaler manual-injection overrides, so a bare filename match on either risks a false positive. Finding a marker never enables [linuwux].enabled itself - it's informational only, the same detect-only philosophy as OptiScaler/Lossless Scaling.

Confidence and identity

Every finding retains its source, locator and observation time. Confidence is:

  • confirmed: directly imported by the primary executable or observed at runtime;
  • likely: filename, secondary binary, log signature or community evidence;
  • unknown: no reliable signal;
  • conflicting: authoritative signals disagree.

Community findings belong to the canonical Runi Game ID. Local files and runtime observations belong to the Installation ID, because another build or store release of the same game may differ.

DRM reported only by PCGamingWiki is presented as possible DRM because the community entry may describe an older build from before that DRM was removed. Local or runtime evidence takes precedence when both sources are available.

Runtime scan

Run Runtime Scan performs one diagnostic launch with Proton DLL logging and observes the Linux process tree through /proc. It does not install or inject Special K. Collection ends when the launcher exits or when the player chooses Finish Runtime Scan. Only matched module/signature evidence is retained; the complete diagnostic log is not copied into the technology report.

Runtime observation can confirm that an FSR provider DLL loaded, but the FSR watermark remains the authority for the exact FSR4-I8 Upscale 4.1.1 model.

Recipe recommendations

  • DirectX 12 plus a modular FidelityFX upscaler DLL found on disk or observed at runtime recommends Native FSR 4.1.1 Upgrade. Community evidence alone does not qualify: it names the family without proving the DLL is present.
  • Native Vulkan recommends Generic OptiScaler + FSR 4.1.1 for DX12 interop.
  • DLSS, XeSS or older FSR without a confirmed native upgrade path recommends OptiScaler.
  • Ambiguous evidence leaves the choice to the player.
  • Detected anti-cheat suppresses automatic OptiScaler recommendation and shows an injection warning.

Recommendations never apply a recipe automatically. One recipe remains active per installation.