Releases: Nielk1/VSCView
0.5.0.0 Release
Major update: Added lots of new themes (big thanks to Al. Lopez for most of them). Added support for PS5 DualSense controller. The entire backend has been rewritten and this rewrite is still in progress so this should be considered a "stopgap" release to provide PS5 controller support and new themes for users. This new backend includes features such as hot-plug detection and third party DualShock 4 fixes.
[N1] Nielk1
[AL] Al. Lopez
[N1] Rewrite controller reading to use HidSharp instead of HidLibrary
[N1] Moved all controller interface logic to new submodule ExtendInput
[AL] New controller and connection icons
[N1] Themes are now sorted by folder name alphabetically, however "default" will appear first.
[N1] Build now clears and copies themes
and icons
folders to ensure they are fresh and up to date.
[N1] VSCView can now be started with the CLI flag "-console" to show a debug console.
[N1] Flee formulas will no longer error when no controller is active, which will help keep the console clean.
[N1] Controller list now uses 2 lines per controller allowing for larger icons and more details.
[N1] Automatic controller connection logic replaced: now if the feature is active and there is one available controller, it will auto-select that controller (empty dongles are ignored).
[N1][ThemeEngine] Added UnixTimeMs
function to Flee formula engine, which is a bit of a hack
[N1][ThemeEngine] Removed bumper2
from DS4 controllers. To reply this, try (triggers:r:analog > 0)
instead of bumper2:r
.
[N1][ThemeEngine] Added If
Flee function that acts like Excel's, where if the first parameter is true, the 2nd is returned, else the 3rd.
[N1][Themes] Added new Steam Controller theme "Devieus Glass" from Devieus.
[N1][Themes] Added new Steam Controller theme "Line Art Invert" from Sora Firestorm.
[N1][Themes] Merged Twenty-Six Twelve's alternate thumbstick & left pad into firesale theme and credited user.
[N1][Themes] "ExistentialEgg has hatched" (Renamed "ExistentialEgg" to "RambleTan")
[N1][Themes] Fixed left pad glow being right by 1 pixel in all firesale theme derivatives.
[AL][Themes] Replaced DS4 theme with new theme of similar appearance.
[AL][Themes] Added PlayStation 20th Anniversary DS4 subtheme.
[AL][Themes] Added Devil May Cry 5 Controller Overlay theme.
[AL][Themes] Added new "Default" Steam Controller theme, old theme moved to "Classic"
[AL][Themes] Added White Steam Controller subtheme.
[AL][Themes] Added new "Diagnosis" Steam Controller theme.
[AL][Themes] Added DualSense theme.
[AL][Themes] Added Cosmic Red DualSense subtheme.
[AL][Themes] Added Midnight Black DualSense subtheme.
[AL][Themes] Added Xbox Controller Theme Prototype.
[N1][Themes] Added general theme category for themes that are not controller specific.
[N1][Themes] Added generic Genshin Impact theme designed for multiple captures/crops.
[AL][Themes] Various theme improvements such as icons, names, and organization
[N1][ExtendInput] Added support for DualSense controller with correct touchpad dimensions
[N1][ExtendInput] Added support for Brook Mars pad using DS4 mode under V17 firmware.
[N1][ExtendInput] Fixed audio data from DS4 mic causing random inputs. Fix supplied to SDL as well.
[N1][ExtendInput] Very primitive XInput support
[N1][ExtendInput] Implemented controller PlugAndPlay events.
[N1][ExtendInput] Detection of various DS4 "QuirksPads". Identification is saved by MAC for later detections.
[N1][ExtendInput] Added handling for multiple controller subtypes for manual selection (used by DS4 "QuirksPad" detection).
[N1][ExtendInput] Fixed issues with Steam Controller on BlueTooth.
[N1][ExtendInput] Read Steam Controller serial number on USB, Dongle, and BLE.
[N1][ExtendInput] Detect if Steam Controllers are in wireless dongle slots.
[N1][ExtendInput] Controllers can broadcast metadata updates such as changed control elements, name, or other properties during runtime.
0.4.0.0 Release
[N1] Removed old alternate data forms.
[N1] Added support for Sony DUALSHOCK®4.
----[N1] Sony DUALSHOCK®4 Controller V1 (PID 0x05C4) USB and BT
----[N1] Sony DUALSHOCK®4 Controller V2 (PID 0x09CC) USB and BT
----[N1] DUALSHOCK®4 USB Wireless Adaptor (PID 0x0BA0)
[N1] DS4s will rumble breifly when selected.
[N1] BLE mode now supported for Steam Controller in addition to Dongle and USB. (Thanks Sprayrate, you saved me a lot of time with the reference information.)
[N1] Window scaling added.
----[N1] If the form is a custom size, it will not resize when a new theme is loaded.
----[N1] If the form is a custom size, it can be reset from the right click menu.
[N1] Added simplistic button to whitelist VSCView for HidGuardian if detected. (This was added to help a V1 user beta-test the DS4 code and is likely not a production ready feature.)
[N1] Added window scaling: once resized new size is fixed unless reset from the right click menu.
[N1] Rebuilt theme engine.
----[N1] PBar element can now be textured.
----[N1] New element PPie.
----[N1] Universalized controller state variables (motion present but subject to change).
----[N1] Added Flee Expression Engine
----[N1] Added automatic updating of version 0 themes at runtime.
----[N1] Added second application to update themes from version 0 to version 1 by dragging and dropping the theme file onto the application in explorer or passing it as an argument to the program in command line.
----[N1] Themes can now exist in subfolders, added icons to themes and theme folders.
----[N1] Themes can now reference images from other themes to reduce file size.
[N1] Added various new themes (all themes are copyright their original authors)
0.3.1.9 Beta Release
[N1] Nielk1
[N1] Chell controllers will hopefully show their face button statuses now. I had the wrong bytes from the report selected.
Also attached is an addition theme JSON sub-theme, place it in \themes\default\chell-nogyro.json
.
0.3.1.8 Beta Release
[N1] Nielk1
[N1] Added beta support for Chell prototype controller, because why not? We have people who can test it so it's in. The theme for testing this Default/Chell - All
. It might not work at all, so do test. Also added the Chell prototype's PID to general detection. All themes should work somewhat for the Chell prototype, but only those made specifically for it will render the additional buttons properly.
0.3.1.7 Beta Release
In this Version
[WFH] WombatFromHell
[N1] Nielk1
[WFH] Changed timing mechanism to lower CPU use at the cost of perfectly even timings. Previously, CPU cycles were spent timing the logic interval, now the system's thread control mechanisms are trusted.
[N1] Added crude "binary formula" logic to the showhide
element under the calc
field. This is very simplistic and, while it resembles a proper syntax, only allows for !
(not) prefixing of variables and &&
(and) evaluations between those optionally prefixed variables. No actual unary or binary operators are implemented, simply basic string parsing.
[N1] Integrated and updated CriticalComposer's themes
[N1] Previous background color now saves in addition to previous theme.
Future
Hopefully this will be the last update to the prototype code base before major refactoring. If a major bug or performance issue occurs however I'll try to get a fix out for everyone from the current code base. The current code was designed as a prototype and was not expected to get this much popularity or use. For this reason the code only follows a limited subset of good principles for coding, such as encapsulation and abstraction. My usual work involves high performance APIs and web interfaces, so any UI code on my part is likely far from optimal, especially in this prototype phase. The following future plans are to be considered the best case scenario:
- Replace HID logic with abstraction layer allowing for Linux implementation or universal library
- Note: Other libraries tried thus far failed to properly operate without entering exclusive mode, which would defeat the purpose of the program. Input from someone with experience with native HID interfaces would be helpful, however I might need to just recode portions of the HidLibrary I've already forked for this project.
- Replace Controller logic with abstraction layer allowing for real and virtual controllers.
- Virtual controllers would likely only be used for replay of past inputs, but this is important in the world of video editing.
- Replace Render logic with abstraction layer allowing for the following outputs (these may be created as different host applications):
- Chroma-keyed form render, similar to current WinForms implementation.
- Micro-Server for use as a web-source in streaming/recording software, allowing for actual transparency.
- Controller data recorder that saves a file usable as a virtual controller input (for easier editing).
- Additionally, a render script for After Effects or other video editing tools that can parse the controller data recording and render VSCView themes would be of great benefit.
0.3.1.6 Beta Release
Skipped 0.3.1.5 as I consider WombatFromHell's fork version 0.3.1.5 given its changes. These changes are now integrated here.
[WFH] WombatFromHell
[N1] Nielk1
[WFH] Major performance optimizations
[WFH] Decoupled render loop and controller update, changed threading/timing mechanism
[WFH] Gyro drift compensation via zero-motion auto-calibration
[WFH] Auto select first controller
[N1] Adjusted device list to show icons for connection type, still looking for method to find controller names
[N1] Adjusted automatic controller selection
[N1] Controller chimes on selection
[N1] Refactored and extended theme system, now cleaner with theme names
[N1] Theme list and author links shown in about dialog
[N1] Added "Silly" template to "Default" theme to demonstrate more unusual theming
[N1] Integrated and updated ExistentialEgg's themes
[N1] Integrated and updated 8BitCerberus's themes
Experimented with Linux support but was unsuccessful.
0.3.1.4 Beta Release
Fixed memory leak where translucent image generation would flood the image cache.
Note that there is no error prevention logic here, so any invalid theme files or error in the HID interface to the controller will probably crash the program. This has not been tested with multiple Steam Controller Wireless dongles, though it should work.
0.3.0.4 Beta Release
Resolved issue #1 by forking HidLibrary to make small changes. There should now be no perceptible lag in the display.
Note that there is no error prevention logic here, so any invalid theme files or error in the HID interface to the controller will probably crash the program. This has not been tested with multiple Steam Controller Wireless dongles, though it should work.
0.2.0.3 Beta Release
Note that there is no error prevention logic here, so any invalid theme files or error in the HID interface to the controller will probably crash the program. This has not been tested with multiple Steam Controller Wireless dongles, though it should work.