# antal-gergely/dlss5-swappers architecture

> Architecture diagram of the GitHub repository antal-gergely/dlss5-swappers, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/antal-gergely/dlss5-swappers
- Repository: https://github.com/antal-gergely/dlss5-swappers

## Overview

DLSS 5 Swapper is a Windows game-library and neural-rendering installer, with community features and an in-game control overlay. The main workflow is to discover or add a game, inspect its executable and rendering API, choose an install route, then install or restore game files with journaled backups. The README documents additional library, diagnostics, settings, community, chat and overlay capabilities. Some renderer-to-main and overlay IPC wiring is not shown in the excerpts, so those links are omitted.

Main entry points: [`src/core/apply.js`](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/apply.js) (Install Engine), [`main.js`](https://github.com/antal-gergely/dlss5-swappers/blob/main/main.js) (Desktop App), [`src/core/backend-manager.js`](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/backend-manager.js) (Backend Manager), [`src/core/optiscaler.js`](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/optiscaler.js) (OptiScaler Route)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_library["Library and Discovery"]
  node_desktop["Desktop App<br/>[main.js]"]
  node_library_ui["Game Library UI<br/>[renderer.js]"]
  node_game_catalog[("Game Library<br/>[library.js]")]
  node_discovery["Game Scanner<br/>[scan.js]"]
  node_pe["Executable Reader<br/>[pe.js]"]
  node_diagnostics["Diagnostics<br/>[diagnostics.js]"]
end

subgraph group_install["Install and Recovery"]
  node_routes["Route Policy<br/>[install-routes.js]"]
  node_installer["Install Engine<br/>[apply.js]"]
  node_backend["Backend Manager<br/>[backend-manager.js]"]
  node_compat["Compatibility Guards<br/>[compatibility.js]"]
  node_feeder["Feeder Settings<br/>[feeder-config.js]"]
  node_opti["OptiScaler Route<br/>[optiscaler.js]"]
  node_runtime["Runtime Downloads"]
  node_journal[("File Journal<br/>[file-journal.js]")]
end

subgraph group_overlay["In-Game Overlay"]
  node_overlay_native["Native Overlay<br/>[overlay.cpp]"]
  node_overlay_controls["Overlay Controls<br/>[live-controls.hpp]"]
  node_overlay_bridge["Overlay Bridge<br/>[overlay-bridge.js]"]
  node_overlay_panel["Overlay Panel<br/>[overlay-panel.js]"]
end

subgraph group_community["Community Features"]
  node_community_ui["Community and Chat<br/>[community.js]"]
  node_community_client["Community Client"]
  node_community_service["Community Service"]
end

node_user(("Player"))

node_user -->|"uses"| node_desktop
node_desktop -->|"scans games"| node_discovery
node_desktop -->|"manages library"| node_game_catalog
node_discovery -->|"reads binaries"| node_pe
node_desktop -->|"installs routes"| node_installer
node_desktop -->|"collects diagnostics"| node_diagnostics
node_installer -->|"inspects binaries"| node_pe
node_installer -->|"configures Feeder"| node_feeder
node_installer -->|"journals writes"| node_journal
node_installer -->|"checks compatibility"| node_compat
node_backend -->|"runs install"| node_installer
node_backend -->|"stores profiles"| node_journal
node_backend -->|"loads settings"| node_feeder
node_backend -->|"uses OptiScaler"| node_opti
node_opti -->|"fetches components"| node_runtime
node_opti -->|"validates binaries"| node_pe
node_overlay_native -->|"ticks controls"| node_overlay_controls
node_community_client -->|"requests data"| node_community_service

click node_desktop "https://github.com/antal-gergely/dlss5-swappers/blob/main/main.js"
click node_library_ui "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/renderer.js"
click node_game_catalog "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/library.js"
click node_discovery "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/scan.js"
click node_pe "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/pe.js"
click node_diagnostics "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/diagnostics.js"
click node_routes "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/shared/install-routes.js"
click node_installer "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/apply.js"
click node_backend "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/backend-manager.js"
click node_compat "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/compatibility.js"
click node_feeder "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/feeder-config.js"
click node_opti "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/optiscaler.js"
click node_runtime "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/runtime-components.js"
click node_journal "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/file-journal.js"
click node_overlay_native "https://github.com/antal-gergely/dlss5-swappers/blob/main/overlay/overlay.cpp"
click node_overlay_controls "https://github.com/antal-gergely/dlss5-swappers/blob/main/overlay/live-controls.hpp"
click node_overlay_bridge "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/overlay-bridge.js"
click node_overlay_panel "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/overlay-panel.js"
click node_community_ui "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/community.js"
click node_community_client "https://github.com/antal-gergely/dlss5-swappers/blob/main/src/community-client.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_desktop,node_library_ui,node_game_catalog,node_discovery,node_pe,node_diagnostics toneBlue
class node_routes,node_installer,node_backend,node_compat,node_feeder,node_opti,node_runtime,node_journal toneAmber
class node_overlay_native,node_overlay_controls,node_overlay_bridge,node_overlay_panel toneMint
class node_community_ui,node_community_client,node_community_service toneRose
class node_user toneIndigo
```

## Components

### Library and Discovery

- [Desktop App](https://github.com/antal-gergely/dlss5-swappers/blob/main/main.js): `main.js`
- [Game Library UI](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/renderer.js): `src/renderer/renderer.js`
- [Game Library](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/library.js): `src/library.js`
- [Game Scanner](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/scan.js): `src/core/scan.js`
- [Executable Reader](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/pe.js): `src/core/pe.js`
- [Diagnostics](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/diagnostics.js): `src/core/diagnostics.js`

### Install and Recovery

- [Route Policy](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/shared/install-routes.js): `src/shared/install-routes.js`
- [Install Engine](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/apply.js): `src/core/apply.js`
- [Backend Manager](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/backend-manager.js): `src/core/backend-manager.js`
- [Compatibility Guards](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/compatibility.js): `src/core/compatibility.js`
- [Feeder Settings](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/feeder-config.js): `src/core/feeder-config.js`
- [OptiScaler Route](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/optiscaler.js): `src/core/optiscaler.js`
- [Runtime Downloads](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/runtime-components.js): `src/core/runtime-components.js`
- [File Journal](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/core/file-journal.js): `src/core/file-journal.js`

### In-Game Overlay

- [Native Overlay](https://github.com/antal-gergely/dlss5-swappers/blob/main/overlay/overlay.cpp): `overlay/overlay.cpp`
- [Overlay Controls](https://github.com/antal-gergely/dlss5-swappers/blob/main/overlay/live-controls.hpp): `overlay/live-controls.hpp`
- [Overlay Bridge](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/overlay-bridge.js): `src/overlay-bridge.js`
- [Overlay Panel](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/overlay-panel.js): `src/renderer/overlay-panel.js`

### Community Features

- [Community and Chat](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/renderer/community.js): `src/renderer/community.js`
- [Community Client](https://github.com/antal-gergely/dlss5-swappers/blob/main/src/community-client.js): `src/community-client.js`
- **Community Service**

### Other components

- **Player**

## Connections

- Player → Desktop App: uses
- Desktop App → Game Scanner: scans games (evidence: `main.js`)
- Desktop App → Game Library: manages library (evidence: `main.js`)
- Game Scanner → Executable Reader: reads binaries (evidence: `src/core/scan.js`)
- Desktop App → Install Engine: installs routes (evidence: `main.js`)
- Desktop App → Diagnostics: collects diagnostics (evidence: `main.js`)
- Install Engine → Executable Reader: inspects binaries (evidence: `src/core/apply.js`)
- Install Engine → Feeder Settings: configures Feeder (evidence: `src/core/apply.js`)
- Install Engine → File Journal: journals writes (evidence: `src/core/apply.js`)
- Install Engine → Compatibility Guards: checks compatibility (evidence: `src/core/apply.js`)
- Backend Manager → Install Engine: runs install (evidence: `src/core/backend-manager.js`)
- Backend Manager → File Journal: stores profiles (evidence: `src/core/backend-manager.js`)
- Backend Manager → Feeder Settings: loads settings (evidence: `src/core/backend-manager.js`)
- Backend Manager → OptiScaler Route: uses OptiScaler (evidence: `src/core/backend-manager.js`)
- OptiScaler Route → Runtime Downloads: fetches components (evidence: `src/core/optiscaler.js`)
- OptiScaler Route → Executable Reader: validates binaries (evidence: `src/core/optiscaler.js`)
- Native Overlay → Overlay Controls: ticks controls (evidence: `overlay/overlay.cpp`)
- Community Client → Community Service: requests data (evidence: `src/community-client.js`)
