Repository navigation
VNAR Beta 1.3
- Data files (
library.json,developers.json,settings.json) are written atomically, keeping the previous version as.bak. - A damaged data file is no longer replaced by an empty library: it is set aside as
*.corrupt-<date>.json, the.bakis restored when valid, and VNAR tells the user what happened (also logged torecovery.log). - Only one library window per session; launching VNAR again brings the existing window to the front.
- Saves from the library window and from game shortcuts are serialized across processes, and the "last played" time recorded by a shortcut is no longer lost.
- Library cards decode covers at their on-screen pixel size (DPI-aware, never upscaled) with high-quality scaling, cache them, and no longer keep image files locked. Much lower memory use with large covers.
- Folder scans run in the background with a progress dialog and can be cancelled; dropping a folder no longer freezes Explorer's drag operation.
- Searching in the Developers tab no longer rewrites
developers.jsonon every keystroke. - Unused cover files (old renders, covers of removed games, interrupted saves) are moved to
covers/_trashat startup and deleted after 30 days. Files newer than 24 hours and originals the cover editor may still need are kept, and cleanup is skipped after any data recovery. - Downloads are size-limited (40 MB per image, 100 MB for the Locale Emulator archive) and never leave partial files behind.
- The SerpApi key is stored encrypted with Windows DPAPI for the current user; existing plain-text keys are migrated automatically. A portable copy moved to another PC or user will ask for the key again.
- New "Modern" shortcut type (default): a
.urlthat opensvnar://launch/<id>, the same approach as Steam and Playnite. No shortcut points atVNAR.exe, so Windows no longer shows VNAR with the name or icon of the last game opened. Modern shortcuts cannot be pinned to the taskbar; "Classic".lnkshortcuts remain available for that, and existing ones keep working. Thevnar://protocol is registered per user only when a modern shortcut is first created, refreshed at startup if the portable folder moves, and accepts only valid launch links. - Shortcuts can use a custom
.ico; it is validated and copied into VNAR's data folder (icons\<game>_<hash>.ico, so the same icon is never stored twice) and the copy is removed if creating the shortcut fails. Icons of removed games are cleaned up at startup. - Modern shortcuts that use the generic icon point to a stable copy in the data folder, so moving a portable VNAR does not leave them without an icon.
VNAR.ShellTestsnow covers modern shortcuts end to end on Windows: protocol registration and refresh, the.urlwritten through COM (URL and icon), and a double-click that starts VNAR, launches the game through a stand-in LEProc and records it. The user'svnar://registry key is backed up and restored.- Importing many games (scan, multi-select, drag and drop) saves the library once instead of once per game.
- Library card covers are decoded on background threads; page changes and searches no longer wait for image decoding.
- Cover cleanup also runs after the whole library is emptied (it still skips fresh installs and any session with a data recovery).
- New
VNAR.CoreTestssuite, run in CI: storage and recovery, saves from several processes at once, bulk import, cover cleanup, decode sizing, scanning, download limits,vnar://links, version and DPAPI. Tests use a temporary data folder (VNAR_DATA_DIR) and refuse to run against a real library. - The version is defined once in
Directory.Build.props; the User-Agent, installer version, release tag and release title derive from it, and release notes come from the matching CHANGELOG section.
Downloads
- VNAR-Setup.exe — self-contained Windows installer.
- VNAR-Portable-win-x64.zip — self-contained portable build.
- SHA256SUMS.txt — package checksums.
Both packages store settings and artwork in %LOCALAPPDATA%\VNAR.
The executables are unsigned; Windows may display a SmartScreen warning.
See the repository README for setup instructions, features, and third-party notices.