Lossless Scaling, extended.
DLSS 5 Neural Rendering, DLSS, FSR and XeSS upscaling for games that never had them, a built-in recorder and GPU limit, and an addon manager that keeps it all in one window.
Download · Install · The addons · Features · Changelog · Questions
Addon Manager for Lossless Scaling loads alongside Lossless Scaling and gives it an addon system, with addons that do what Lossless Scaling alone cannot:
- DLSS 5 Neural Rendering gives any game a new look, on every frame Lossless Scaling shows.
- The DLSS, FSR and XeSS Upscalers put a real temporal upscaler in place of Lossless Scaling's NIS scaler, so games that never had one get one.
Around them, the manager installs and switches addons, records clips of what the game showed, keeps the graphics card under a limit you choose, shows the machine's load at a glance, explains what limits your frame rate, backs every setting up and updates itself. It is free, MIT-licensed and unofficial: not affiliated with the Lossless Scaling developers. Read the disclaimer before installing.
1.0.0 (roadmap) · Lossless Scaling 3.2.2.0 · Windows 10 or 11, x64
Tip
New in 1.0.0: one recorder and one GPU limit for everything, and a choice of model.
- Recording is a feature of the manager (Features tab): press a key, hear it, get a clip and a note beside it, with or without any addon on and with or without frame generation. Compact (8-bit, a sixth of the size) or Exact; any key from F1 to F12.
- GPU limit is a slider there too (80 to 100 %): the addons make their work cheaper while the card is at the limit and go back when it is well under.
- Neural Rendering has a Model preset: Newer (the default with NVIDIA's runtime 310.9.16: lighter, a gentler effect) or Older (the original look, at the old cost).
- The addon interface is 1.3 (calls appended only; addons built for 1.0 to 1.2 keep working), and the 1.0 promises are written down in docs/api-compatibility.md.
Everything since 0.9 is in the changelog.
Silent Hill f (Unreal Engine 5, HDR) through Lossless Scaling: the original above, DLSS 5 Neural Rendering below.
Important
DLSS 5 Neural Rendering needs a file you provide yourself: your own copy of nvngx_dlssnr.dll. It is not included, this project never downloads it,
and it does not say where to get it. Put it next to LosslessScaling.exe (Setup and the addon's Browse for the model file... button can copy it there), then
press Test compatibility in the addon's panel. Everything else, the upscalers included, works without it.
Tried with World of Warcraft: Forever, Fallout: New Vegas (Tale of Two Wastelands), Silent Hill f (HDR) and Metro 2033 Redux, on an RTX 4070 Ti SUPER and Windows 11. Other games and cards are untested so far: reports are welcome.
- Install
- The addons: Neural Rendering, the upscalers · Built-in features: recording, GPU limit, ReShade, windowed mode
- The manager · Hotkeys · Updates · If something goes wrong
- For developers: how it works, building, writing an addon, research notes · Credits
- Download
LSAddonManager-<version>-x64.zipfrom the releases page and unzip it. - Close Lossless Scaling and run
LSAddonManagerSetup.exe. It finds your Lossless Scaling folder (Steam or not; otherwise choose Use a different folder...) and offers what fits: Install, Update, Repair or Uninstall. - Start Lossless Scaling. The manager opens by itself. Neural Rendering is on; the upscalers are off until you switch one on.
Setup, before installing![]() |
Setup, when it is done![]() |
What Setup does:
- Keeps Lossless Scaling's own
Lossless.dllasLossless_original.dll(the manager forwards to it) and puts ours in, with theaddonsfolder. - Backs up everything it replaces into a
backupsfolder, checks every file after copying, and puts the folder back as it was if anything fails. - Never touches your settings or your other addons, and refuses to run while Lossless Scaling runs from that folder.
- After a Lossless Scaling update (which may put its own
Lossless.dllback), run it again: it offers Repair. - Asks for administrator rights only when the folder needs them (Program Files, for example).
Like every file here, Setup is unsigned, so Windows SmartScreen may warn you: choose More info, then Run anyway. Its source is in installer/.
Installing by hand
- Close Lossless Scaling and open its folder (for Steam, for example
C:\Program Files (x86)\Steam\steamapps\common\Lossless Scaling). - First time only: rename its
Lossless.dlltoLossless_original.dll. Keep it: the manager forwards to it. - The files are inside Setup. In a command prompt in the unzipped folder, run
LSAddonManagerSetup.exe --extract files: it writes them into a newfilesfolder and changes nothing else. Copy everything from there (Lossless.dll, the twomanager-iconfiles andaddons) into the Lossless Scaling folder. - Start Lossless Scaling.
Updating: extract the new release's files the same way and copy them over the old ones. After a Lossless Scaling update: delete the stale
Lossless_original.dll, rename the new Lossless.dll to Lossless_original.dll, and copy ours in again. Uninstalling: delete our Lossless.dll, rename
Lossless_original.dll back to Lossless.dll, and delete addons if you like.
| What it does | Needs | Starts | |
|---|---|---|---|
| DLSS 5 Neural Rendering | NVIDIA's neural rendering model on every frame Lossless Scaling shows: a new look for any game | NVIDIA RTX, your own model file | on |
| DLSS Upscaler | NVIDIA DLSS in place of NIS: upscaling, or DLAA at the screen's own size | NVIDIA RTX | off |
| FSR Upscaler | AMD FSR 3.1 or FSR 4 in the same place | any DirectX 12 card | off |
| XeSS Upscaler | Intel XeSS in the same place | any card with Shader Model 6.4 | off |
| Video Super Resolution (work in progress) | NVIDIA's RTX Video Super Resolution in the same place, for a picture that is still: in the repository, not in the package | NVIDIA RTX | not available yet |
Every runtime the upscalers need comes with them. Only one upscaler runs at a time; any of them works beside Neural Rendering.
Note
The Video Super Resolution addon is a work in progress: its source is in addons/DLSS5NR01/src/vsr, it is listed greyed out in the manager and is not in the package. It will need your own copy of NVIDIA's Video Effects SDK, or a download you start yourself.
Runs NVIDIA's DLSS 5 neural model on Lossless Scaling's frames and puts the result on every frame it presents, real and generated, without ever making Lossless Scaling wait.
- Frame generation on or off. With it on, the model's result is carried onto the generated frames along the motion; with it off, the model takes the presented frames.
- Its own motion measurement, per pixel, so the picture holds together while the camera turns.
- Looks: saved sets of sliders, a look per game that follows the game in focus, and a hotkey to cycle them.
- Keep the HUD untouched: draw the areas the model must leave alone (action bars, chat, the minimap) on a snapshot of the game.
- Picture controls: intensity, fine detail, local contrast, skin detail, sharpening, tone, colour, shadows and highlights, film grain, temporal smoothing, and a ghost guard where the motion cannot be trusted.
- HDR games (scRGB and HDR10), with only the model's change put back, so highlights keep their brightness.
- Compare while you play: before / after, a split view, and before / after pictures (see Hotkeys).
- Model preset: with NVIDIA's runtime 310.9.16 or newer, Newer (the default: about 40 % less model time, a gentler effect) or Older (the original look, the old cost); a model file older than that has only the older one.
- Auto quality keeps the model within a time budget (and follows the manager's GPU limit); a compatibility test tries the model on your card before you play.
About 5 to 9 ms a frame on an RTX 4070 Ti SUPER with a 1912x1080 model input (8.5 ms at 4K in World of Warcraft). The addon's README has the details.
Lossless Scaling scales a game window up to the screen one frame at a time. The upscalers put a temporal upscaler in its place: it reads several frames and
the motion between them, for a steadier picture with cleaner, smoother edges. The game needs no support for it: the addons measure the motion from the frames themselves.
What it cannot do is add detail the game did not render: a game gives its own upscaler a tiny camera shift every frame, which is where a temporal upscaler finds extra
detail, and Lossless Scaling's frames carry none. Measured on recordings (docs/frame-generation-research.md): where the picture moves the addons lean on a resample of the
frame (no trailing), and at rest the upscaler smooths (the Sharpness at rest slider trades some of that back for sharpness).
To use one: switch it on in the addon list, choose NIS as the Scaling Type in Lossless Scaling, and run the game in a window smaller than the screen (for example 2560x1440 on a 4K screen). At the screen's own size it anti-aliases instead.
| DLSS | FSR | XeSS | |
|---|---|---|---|
| Runs on | NVIDIA RTX | any DirectX 12 card | any card with Shader Model 6.4 (Intel Arc, NVIDIA, AMD) |
| Versions | Auto (the default: model E at the screen's own size, L when upscaling), or K, L, J (DLSS 4), M (DLSS 4.5), E (DLSS 3) | FSR 3.1.4 (AMD's, signed) or FSR 4.1.1b (the OptiScaler team's build, on any card) | XeSS 2.0.2 (Intel's, signed) |
| Good at | smoothing edges | FSR 3: low cost, crisp text; FSR 4: motion | on Intel Arc it runs on the card's matrix units |
| Sharpening | ours | ours (AMD's RCAS is off by default) | ours |
Which one? On an NVIDIA RTX card, try DLSS and FSR 4. On any other card, FSR, and XeSS on Intel Arc. All three are tried in World of Warcraft.
What all three do:
- Every presented frame, real and generated, with frame generation on or off.
- HDR games (scRGB and HDR10) in the upscaler's own HDR mode, highlights kept; Frame encoding overrides the automatic choice.
- 4:3 and other window shapes, upscaled into the part of the screen Lossless Scaling uses, borders left alone.
- Steady in fast motion: Lossless Scaling gives an upscaler none of the camera jitter a game gives it, so in motion its memory of earlier frames only trails; where the picture moves, ours leans on the new frame (Lean from sets from how much motion).
- Stability (less shimmer on wires and leaves), edge smoothing for games without anti-aliasing, and sharpening well past the upscaler's own.
- Colour and tone (vibrance, saturation, shadows, highlights, brightness, contrast, gamma), applied before upscaling, so they cost nothing.
- Settings per game, which come back when the game takes focus.
- Before / after against NIS while you play, and a line of live numbers.
What they cost on an RTX 4070 Ti SUPER, everything included (the 1:1 row: 0.9.14, live in World of Warcraft, the motion estimate included):
| DLSS | FSR 3.1 | XeSS | |
|---|---|---|---|
| 1920x1080 -> 3840x2160 | about 1.5 ms | not measured yet | |
| 2560x1440 -> 3840x2160 | about 2.4 ms | about 1.85 ms | not measured yet |
| 3840x2160 at 1:1 (anti-aliasing) | about 4.2 ms (model E) | about 3.3-3.7 ms | about 2.7-2.8 ms |
FSR 4 costs more than FSR 3.1; the panel's status line shows what it takes on your card. If the game has its own anti-aliasing (MSAA), switch it on: it draws what no upscaler can put back. The upscalers' guide covers every setting.
Built into the manager, on its Features tab. Recording and the GPU limit work for every addon; each feature has its own switch.
| Feature | What it does |
|---|---|
| Recording | Press Ctrl+Shift+F1 (any F-key you choose): a tick the moment you press, a rising pair when the clip is saved, a low tone when there was nothing to save. The clip is a .lsrec file that plays the problem back on another computer, with a note beside it (<file>.lsrec.json: the game, the picture, which addons were on and their main settings). It finds Lossless Scaling's frames itself, so no addon has to be on, and with frame generation off it records the frame the scaling pass reads. Compact (the default) turns HDR frames into an 8-bit picture on the card first: a ten-second clip is about 1 GB and saved in seconds; Exact keeps every frame as captured. Keep going after the key saves a few seconds after the press. |
| GPU limit | Keep the graphics card under 80 to 100 % (95 % by default). The manager reads the load of the card Lossless Scaling runs on (NVML on NVIDIA, Windows' counters on any other card) and tells the addons: Neural Rendering's Auto quality takes the model's working size down, and the upscalers' lighter mode for generated frames starts, while the load stays at or over the limit; they go back when it is well under. |
| ReShade input passthrough | Mouse and keyboard reach a ReShade overlay while Lossless Scaling scales the game. Home turns it on and off. |
| Windowed mode and second monitor | A virtual display the size of your game window, so Lossless Scaling works with a windowed game or on a second monitor, with split-screen and side-by-side options. Switching it on needs a restart of Lossless Scaling. |
Each feature shows its few options once it is switched on.
- The machine at a glance: the header shows the graphics card's load and memory, system memory and the processor, on every tab.
- A Performance tab that explains itself: frame rate and frame times, what each addon costs, the GPU's load, power, clocks, temperature and memory, and a plain-words reading such as "the GPU is at its power limit".
- Addons without touching folders: install from a folder, a zip or a DLL (or drop one on the window); Remove moves an addon aside, nothing is erased.
- Runtimes list: every file the addons run on (DLSS, FSR, XeSS, your model) with its version, whether it is loaded, and whether it is signed as its maker shipped it. + switches to another file while the game runs.
- Record a bug: the manager keeps the last few seconds of frames and saves them, with a note, as a file that plays the problem back on another computer (the Recording feature above).
- Stays out of the way: it opens with Lossless Scaling, hides to the notification area, and comes back with a click or Ctrl+Shift+F12.
- Back up and restore every setting to one file, and a diagnostics zip of logs and settings for a bug report (nothing is uploaded).
- Safe by design: a faulting addon cannot take Lossless Scaling down, settings are written atomically, and optional SHA-256 checks guard addon DLLs.
- Interface size from 75% to 200%, sharp on any display.
| Tab | What is on it |
|---|---|
| Addons | The addon list with a switch, icon and live status for each, the Runtimes list, and the chosen addon's settings |
| Features | Recording, GPU limit, ReShade input passthrough and Windowed mode |
| Performance | Frame times, addon cost, GPU load, power, clocks, temperature, memory, and what is limiting you |
| Settings | Backup and restore, interface size, start-up and hotkey, updates, security, log detail, the diagnostics file |
| Logs | The last 10,000 log entries, filtered by level |
| About | What comes with it, version and updates, credits |
Closing the window stops nothing: the manager hides to the notification area (Windows may keep its icon under the ^ arrow by the clock).
Performance![]() |
Settings![]() |
They work while the game has focus. The game sees the key too, so the defaults keep away from keys games often use alone (F5, F6, F9, F11). If one clashes in your game, change it in the addon's Compare and hotkeys section.
| Keys | What they do | Where |
|---|---|---|
| Ctrl+Shift+F12 | Show or hide the manager | the manager |
| Ctrl+Shift+F7 | Before / after: the original (or NIS) against ours | every addon |
| Ctrl+Shift+F8 | Split view: the original at the left, ours at the right | Neural Rendering |
| Ctrl+Shift+F2 / F3 | Sharpening down / up | every addon |
| Ctrl+Shift+F4 | Before / after pictures: two PNGs of the same moment, with and without the addon | every addon |
| Ctrl+Shift+F10 | The next saved look | Neural Rendering |
| Ctrl+Shift+F9 | Steps through Lossless Scaling's NIS and the upscalers that are on, one at a time, with a label (a temporary test; not configurable, so do not bind F9 to anything else) | the upscalers |
| Ctrl+Shift+F1 | Save the recording (the last few seconds; or, with the recorder's Keep the last few seconds off, record the next ten and save them). The key can be any of F1 to F12 | the manager (Features tab, Recording) |
| Home | ReShade input passthrough on and off | the manager |
At start-up (if the last check is over an hour old) and then once a day while it stays open, the manager asks GitHub whether there is a newer release (on by default; Settings > Updates turns it off, Check now always works). It waits while a game is being scaled, so nothing is shown over a game. When there is one, it asks once, and an Update available badge stays in the header (also after Not now) to open the offer again:
- Download and install downloads the release, checks its size and SHA-256 against GitHub's and that the Setup inside is that version. Then you choose: Close it and install asks Lossless Scaling to close itself (as its window's X would; any scaling in progress ends) and Setup updates it and starts it again; Install when I close it leaves the closing to you and Setup waits. If Lossless Scaling does not close when asked (a dialog open in it), the offer says so and gives Ask again and End it now. Your settings carry over, and the Setup that runs is hashed again just before it starts.
- Not now asks again after the next check; Don't ask again for this release waits for a newer one (the About tab still offers it).
The offer![]() |
Downloaded and checked![]() |
(The pictures show a sample release.)
That check, and a download you ask for, are the only times the manager goes online. To update by hand, download the zip and run Setup: it offers Update.
| What you see | What to do |
|---|---|
| The manager does not appear | It may be hidden: look under the ^ arrow by the clock, or press Ctrl+Shift+F12. If not, a Lossless Scaling update may have put its own Lossless.dll back: run Setup and choose Repair. |
| Setup says Lossless Scaling is running | Close it (also from its notification-area icon), then press Check again. |
| Setup does not find your Lossless Scaling folder | Choose Use a different folder... and pick the folder that holds LosslessScaling.exe. Setup remembers it. |
| SmartScreen or your antivirus objects to a file, or flags the zip as a trojan | The files are not signed, and a new unsigned file that replaces a DLL looks suspicious to a cloud check; it is a false positive. What to do: compare the SHA-256 on the release page, build it yourself, or allow it. If your antivirus removes nr_selftest.exe, only Test compatibility stops working. |
| Neural Rendering says the model file is missing | It needs your own nvngx_dlssnr.dll next to LosslessScaling.exe: use Browse for the model file..., then Test compatibility. |
| An upscaler is on but the picture looks like NIS | Choose NIS as the Scaling Type in Lossless Scaling. The panel's status line says what the upscaler is doing. |
| The DLSS Upscaler names a card that is not NVIDIA's | Lossless Scaling runs on that card. Set its Preferred GPU to your NVIDIA card, or use the FSR or XeSS Upscaler, which run on any card. |
| FSR 4 looks wrong, costs too much or does not start | Set FSR version back to FSR 3.1.4 in the FSR Upscaler's panel. A chosen file that goes missing falls back to the shipped one by itself. |
| An addon says its runtime "stopped responding" | Lossless Scaling carries on without the addon. Choose another runtime with + in the Runtimes list, restart Lossless Scaling, and send us the addon's log. |
| An HDR game looks washed out, too dark or too bright | Set Frame encoding (the bottom of the Upscaling section) to HDR or SDR by hand, and tell us which it needed. |
| Windowed mode does nothing | Restart Lossless Scaling after switching it on: its virtual display must exist before Lossless Scaling starts. |
| Something looks wrong in a game | Switch on Recording in the manager's Features tab, make it happen, press Ctrl+Shift+F1 (it beeps when the file is saved), and attach the .lsrec file (in Videos\Lossless Scaling, or the folder you chose there) and the .lsrec.json note beside it to your report. |
| Stutter or uneven pacing | Look at the What stands out lines under Status in the addon's panel: they say in plain words whether the game's own frames are uneven, whether the graphics card is full, and what to try. For a report, make it happen, press Ctrl+Shift+F1 (or close Lossless Scaling), and send the addon's log and logs\frame-trace-<addon>.csv from the Lossless Scaling folder: it is a timeline of the frames (python tools/analyze_frame_trace.py <csv> reads it). |
| Anything else | See the questions and answers. To report a bug, make a diagnostics file on the Settings tab. To undo everything, run Setup and choose Uninstall. |
The files it keeps
All inside the Lossless Scaling folder, except the recordings.
| File | What |
|---|---|
addons\config.json |
Every addon's state and settings, and the manager's. Written atomically; an unreadable one is kept as config.json.corrupt. |
addons\trusted_addons.json |
Optional: { "<addon id>": ["<sha256 of its DLL>"] }, for the Security setting. |
addons\.removed\ |
Addons you removed, each in a folder with a timestamp. |
addons\<addon>\runtimes\ |
Runtime files added with + in the Runtimes list (and the FSR 4 build), one folder each. Updates leave them alone. |
backups\ |
What Setup replaced, and settings saved before a restore replaced them. |
logs\ |
LSAddonManager.log and each addon's own (DLSS5NR01.log, DLSS4DLAA.log, FSR3UPSC.log, XESSUPSC.log); the manager's rolls over to .old at 8 MB. |
Videos\Lossless Scaling\*.lsrec |
Recordings, in your Videos folder. |
LosslessScaling.exe
└─ loads Lossless.dll <- the manager, in the original's place
├─ loads Lossless_original.dll (the real engine) and forwards its exports untouched
├─ watches Direct3D 11 compute work and shader loading, for addons that ask
├─ loads the addons from addons\
└─ draws its window with Dear ImGui on its own thread
Nothing in Lossless Scaling is patched on disk, and removing the manager puts everything back. Addons share the manager's Dear ImGui context, so their settings appear inline in the same look.
The addons do their GPU work on a Direct3D 12 device of their own, beside Lossless Scaling's Direct3D 11 one; they share textures and fences, every wait between them is a GPU wait, and NVIDIA's, AMD's and Intel's code runs on a thread of the addon's own, so Lossless Scaling's render thread never stops for an addon. Neural Rendering hooks the frame Lossless Scaling captures or presents; the upscalers recognise its NIS pass and put their picture in its output. The architecture notes have more.
Visual Studio 2022 (Desktop C++) and CMake 3.20+. Dear ImGui and MinHook are fetched at pinned versions on first configure.
powershell -File tools\build_all.ps1 # the manager and the addons (-Only host: the manager only)
powershell -File tools\run_addon_tests.ps1 # the offline tests for what changed (-All: everything)
powershell -File tools\ci.ps1 # what the GitHub build runs: manager, installer, sample addon, and the tests that need no GPU
python tools\run_hosttest_matrix.py --jobs 3 # the addons on a hidden swap chain, scenario by scenario (GPU; an idle machine)
python tools\bump_version.py 1.0.1 # every place that holds the release number (dry run; --apply writes)
powershell -File tools\package.ps1 # the release zip, with Setup built around the files
powershell -File tools\deploy.ps1 -What all # copy a build into a Lossless Scaling folder, with backupsThe addons also need their vendors' SDKs, which are not in this repository. Each script fetches from the vendor's own repository and checks what it gets:
| Script | What | Licence |
|---|---|---|
tools\fetch_ngx_sdk.ps1 |
NVIDIA's DLSS SDK (headers, static library, nvngx_dlss.dll), after you accept NVIDIA's licence |
NVIDIA's |
tools\fetch_ffx_sdk.ps1 |
AMD's FidelityFX runtime, FSR 3.1.4 (pinned SHA-256, AMD's signature); the headers are in third_party/ffx |
MIT |
tools\fetch_fsr4.ps1 |
FSR 4.1.1b, the OptiScaler team's build (pinned SHA-256; needs 7-Zip) | AMD's FidelityFX SDK licence |
tools\fetch_xess_sdk.ps1 |
Intel's XeSS SDK 3.0.2 (headers, libxess.dll; pinned SHA-256s, Intel's signature) |
Intel Simplified Software License |
The offline test host and its scenarios (tools\run_hosttest_matrix.py) exercise every addon path without Lossless Scaling or a game. The full suite (ci.ps1 and the
host matrix) is run once, on a release; day to day, dev.py test changed runs what a change touches. The tools README lists every script.
Written down so they are not lost; none of it is in a product unless a release note says so.
docs/frame-generation-research.mdanddocs/own-generator-plan.md: measuring frame generators on recordings (EchoFG, our own, in the test build only).docs/mfg-super-motion-study.md: what another project's public files tell about driving NVIDIA's frame generation from outside a game, and a measured head to head (DLSS-G, FSR 3.1 and EchoFG on the same recordings: EchoFG at least as good as FSR, both clearly ahead of DLSS-G fed our motion and a flat depth). Lab:tools/dlssg_probe.docs/optical-flow-study.md: NVIDIA's optical flow hardware against our flow estimator (ours is better; the hardware is cheaper). Lab:tools/flowlab.docs/model-compatibility.md: the Neural Rendering model files seen working, and what each looked like.
Addons written for LosslessProxy load unchanged: the interface began as LosslessProxy's and has only grown at the end. An addon with a settings panel
should still be rebuilt against this SDK (manager/sdk/include/eam), since the manager pins its own Dear ImGui; if a panel faults anyway, the manager
switches that panel off instead of going down with it.
Start from the sample addon, a small, tested addon with settings, a panel, a status line and a metric. Then read docs/addon-authors.md for the exports, the host interface and the shared look, and docs/api-compatibility.md for what the 1.0 interface promises.
This project began as LosslessProxy by FrankBarretta, with thanks: its proxy Lossless.dll with addons,
its addon interface and the ReShade and Windowed features. The manager has since been rewritten; about a tenth of its lines still match the original's.
Neural Rendering began as andreiday's DLSS 5 plugin for LosslessProxy and has been rewritten and extended here.
The upscalers run NVIDIA DLSS, AMD FidelityFX Super Resolution (FSR 4 as built by the OptiScaler team, with thanks) and Intel XeSS; their motion measurement, stability and edge smoothing are this project's own. The full list, with licences, is in NOTICE.md. NVIDIA, DLSS, AMD, FidelityFX, FSR, Intel and XeSS are trademarks of their owners; this project is not affiliated with or endorsed by them. Lossless Scaling belongs to its author; this project is unofficial.
If it is useful to you, you can support it on Ko-fi.












