Releases: Struggleton/Delfinovin
A New Year - version 3.0!
This is a developer's note from me to everyone who gets this release - If you're not interested in reading it, and only reading the changelog / downloading the latest release, feel free to skip this. But if you're so inclined to do so, contribute to me and the project by donating using the Paypal / KoFi / Patreon links below. I've been grinding hard to get this new release out and create something I'm really proud of, and I would love to continue to work on it.
It's been over a year since Delfinovin's last release. Delfinovin was not in a state I felt I wanted to leave it in, with numerous bugs and issues, but between college and general life happenings, I couldn't find the time to make the changes I wanted to make to improve it. At some point, I began poking at the code base and realized that a lot of issues that I had with the application and code were so deeply rooted in its design that I felt that only a rewrite could really remedy them. College got in the way of me doing what I wanted, but as of recently it began to wind down, I gained a lot more motivation towards fixing it, and I was able to spend more time on it.
For the last month or so I've spent most of my time rewriting Delfinovin and its code into a more solid code base, something easier to understand and update. I rewrote the UI, basically all of the code to interact with the adapter, and implementing a lot of useful and interesting features. I also wanted to make this project something people trying to learn, could take something away from, so I've commented on a lot of code and what it does and attempted to implement a lot of consistency rules in the code. I will admit, feature creep definitely came into play, and this release doesn't have all of the features I would've liked to include. But if I didn't stop myself this release would've never seen the light of day, haha.
With all of that being said, here is the changelog for Delfinovin v3.0.0!
- Completely new UI - A new UI with the goal of simplifying the experience overall for people compared to the old version. How to operate it is hopefully more clear.
- New profile system - In the previous versions, Delfinovin used its own custom configuration implementation to store controller and application settings. Now in Delfinovin v3 it uses a more standardized and easily extensible JSON profile system. Controller profiles are shared application wide, and can now be favorited in a list. This fixes a number of issues with profiles not saving, not loading, default profiles not being assigned properly, etc.
- With this however, old profiles will not carry over and will have to be redone. My deepest apologies.
- A new input system backend - Basically a complete rewrite of how inputs are handled. Inputs are only updated when changes to the previous input are made. The inputs are handled significantly differently, allowing for a number of new features to be added such as:
- Button Remapping - A feature long time requested! Buttons can be remapped to different Xbox buttons and button combinations can be created in order to press buttons on the Xbox controller that the Gamecube controller does not have.
- With this, the EnableDigitalPress setting was removed in favor of users being able to directly map the digital button to the triggers.
- ...However a new setting called SwapControlSticks was added that now allows users to swap the left and right thumbsticks.
- Hotkeys - Hotkeys and button combinations can now be assigned in Delfinovin to perform a number of actions, such as...
-
Input Recording - I think this is the first implementation of input recording on an input wrapper ever. Inputs can be recorded, stored and played back in Delfinovin! Use this to record combos/scenarios in various games.
- Input Display - Open a window with a fighting game-esque input display, with a greenscreen for easy chroma keying.
- A number of miscellaneous improvements and bugfixes were made to the application:
- Improved UI response time. Closing / Opening the application is now cleaner + faster.
- Improve stick ranges and calibration. Stick ranges and values should now be more accurate to the controller.
- Fixed an issue where Delfinovin would leave the process open if closed using the Taskbar.
- Fixed an issue where the system tray icon would be left behind if closed in a specific way.
- Fixed an issue where default profiles failed to load on startup.
- Fixed an issue where two triggers could not be pressed at the same time.
With that, please enjoy! If you are interested in contributing to the project or using it at large events, navigate to the contributions and events page on the wiki for more information on how to do so.
With this new version however, Delfinovin has migrated to the .NET Core Framework. This is different from the .NET Framework that is prepacked with Windows. .NET Core is a newer framework, receiving multiple modern updates and support compared to the .NET framework, and I found it in my best interest to migrate to it.
This means you will have to install the .NET 7 Desktop Runtime in order to run the application. Opening Delfinovin for the first time will prompt you to install it and will download it for you automatically, should you let it. You can also follow the setup instructions on the wiki, if you are a first time user of Delfinovin. Any issues regarding the .NET Runtime installation will be closed.
Pretty Colors - v2.0!
Hello everyone! This is the 6th major release of Delfinovin. With this update, we have number of changes, including UI themes, an automatic updater, and some bugfixes! Here is the changelog:
- Added an updater - Check for updates from the Delfinovin releases page.
- Added new application settings - These include:
- Minimize Application on Startup (Minimizes the application when it is first run)
- Run Application on PC Startup (This setting adds Delfinovin as an application to the startup folder, so that it runs when your PC first boots!)
Added themes! Personalize your Delfinovin! - This includes both the ability to change the UI theme and the controller color! Access the theme selector from the Application settings window!
- Attempt to fix an issue where the system tray icon would appear multiple times.
- Consequently, this also fixes a bug where the icon would not disappear when opening the application from the System Tray
- Fix an issue where the application could be opened multiple times. Now only one instance can be open at a single time.
- Fix an issue where replugging the controller would not reload the default profile.
- Fix an issue where the UI would not update when unplugging the controller.
There are a lot of new features here - Please report any bugs or issues you may have with this version here under the issues page OR DM me on Twitter @ Struggleton. Thank you for the continued support and I hope you enjoy!
Fix low rumble states
- Attempt to fix low rumble states by taking them into account.
Add true analog / digital trigger support
- The functionality behind the "Enable Digital Trigger" setting has changed.
- Previously, enabling the setting would register anything over the "TriggerDeadzone" value as a full press.
- Now enabling it sets Delfinovin to map the digital buttons of the triggers and analog values of the trigger.
Fix setting save/load issues on non-english installations
- Fix settings loading/saving improperly on non-english installations of Windows
New UI? Bugfixes? Oh my! - v1.0.0!
Hello everyone! This is the 5th major release of Delfinovin. You may notice the difference version numbering from the strange ones that were being used before (v0.02, v0.04, etc.) This is because I deem this release substantial enough to be worth navigating from that numbering to proper numbering sequence.
This update comes with whole lot of changes, mainly regarding the new UI and fixing input related bugs:
-
Completely new UI written in WPF for Delfinovin!
- As per UI design would have it, you can now set your controller settings during runtime!
- There are now two new settings:
- [Left/Right] StickRange
- [Left/Right] StickDeadzone
- Calibration can be done as the program is running as well.
- These settings and calibrations can be saved into controller profiles and loaded later for ease of use. They can also be set to be loaded on specific ports by default on program start and be applied.
-
Fixed a bug while centering controllers. Previously sticks could be centered using malformed packets, causing unreasonable stick inputs. Stick centering now gathers multiple packets to ensure that the controller is using the correct origin values.
-
Fixed an oversight where calibrations were not using center stick calibrations leading to improper stick placement.
-
Fixed support for Nyko branded adapters (which probably includes multiple 3rd party ones)
(Edit - I've uploaded a new build fixing issues with controller profiles and stick centering - please redownload if you have these issues!)
Thanks for the continued support for Delfinovin! If you have any issues or concerns, please DM me on Twitter @ Struggleton or on Discord at Struggleton#4071. If you'd support the project, please consider donating using the ko-fi / paypal link in the main readme of this project.
Event Cleanup - v0.04!
Hello everyone! This is the 4th major release of Delfinovin. This update comes with some major behind the scenes and a couple of quality of life changes. Here's the changelog:
- Delfinovin has been completely rewritten to clean up the code, reduce memory usage and take advantage of libUSB's event based reads.
- Overall, the changes here should help to reduce any latency by only sending inputs and reading data as needed.
- As per these changes above, calibration is now done within the input loop. This means you can recalibrate controllers while the program is running.
- Delfinovin uses a new stick scaling function - This should address stick range accuracy issues overall.
- Added hotplugging. XInputs are dynamically created / removed whenever you plug in controllers. Unplugging controllers removes their calibrations.
- Added SwapAB/XY settings. By default these are enabled so it fits the Nintendo layout, but if you need to change the layout - the setting's here now!
Thanks for the continued support for Delfinovin! If you have any issues or concerns, please DM me on Twitter @ Struggleton or on Discord at Struggleton#4071. If you'd support the project, please consider donating using the ko-fi link in the main readme of this project.
Please enjoy!
Major Release - v0.03!
Hey everyone! This is the third major release of Delfinovin. I've added a host of new features + bugfixes.
- Complete refactor of the code! Should be more readable with comments + new classes.
New features include:
- Rumble/haptic feedback support!
- In-program deadzone support, for use with games without deadzones support. By default this is off.
Changes made are:
- Moved Z-Button from Back/Select button to Right Trigger/Bumper.
- Swapped A/B/X/Y to fit the native Gamecube Controller layout.
- The EnableDigitalPress setting has seen an update!
- If enabled, any press over your TriggerDeadzone will register as a full button press, emulating a digital trigger.
- If disabled, normal functionality where TriggerThreshold will allow you to use analog triggers will be used.
- the Z-button is swapped between Right Trigger/Bumper when enabled/disabled - keep this in mind.
Bugs squashed:
- Fixed a potential bug while calibrating controllers.
- Fixed a bug when reading settings while different separator formats were used.
- This version includes the previous fix for Nintendo branded adapters from v0.02-bugfix! It should work with Nintendo Adapters now.
I plan on implementing a new feature in v0.04 - Creating new/default profiles for stick calibrations - Naming and creating new ones for quick access.
Big thanks go out to all of the testers who helped report bugs and fix issues! If you are interested contributing, please place pull requests + submit issues/functionality requests!
If you like what I do, please consider donating using the kofi link in the readme!
Thank you all so much for the support - Please enjoy!
Fix IOError
Hello all! This is a quick release to fix a bug (IOError) that prevented the loop from beginning properly on Nintendo adapters. Thank you!
Added stick calibration features
Delfinovin now has the ability to calibrate sticks so that they can reach the full range of the control sticks now. This means you can use the sticks in other games that don't support changing stick ranges. BIG thanks to BarkingFrog - I would've never figured out the math to scale the stick inputs properly!
Please read the readme on the main page of the Delfinovin project for more information on how to calibrate controllers (along with some current issues with the project right now.)
Thank you for your support and please continue to send any issues with the program my way!