This update is made thanks to my 3-year-old DualShock4, of which the right stick started to shift wildly.
Deadzone
I made a change so I can continue using my DualShock4 with Mini Padder, and I believe this will help other people having a gamepad with unbalanced analog sticks. I meant to make this update sometime ago, but having to touch various places in the code scared me. I did it, and as I expected it took too much time. A whole night and a whole evening before it are gone.
Alert
I also added a way to announce updates in the control panel. I don't know how often you interact with it before starting a stream. But if you do, you can be now notified when something changed. The only way to get notified before was visiting the forum or the repository, if you happened to notice the very small version number at the end of the control panel is changed. This update is better than that, at least.
The DualSense mapping in the 3.11.2 update turned out to be not actually applied to clients of existing users. This is embarrassing, but it's fixed now.
- modified Biker skin
- reflected in-game behaviour of overriding triggers with buttons
- added labels to each trigger parts to help telling how much each triggers are pressed
- slightly changed the control panel colour to follow the palette used for all default skins
- modified the alert system
- alerts now disappear on click
- a latest update can be announced via an alert
- more descriptions on the control panel to hope each features becoming more clear
- fixed DualSense mapping not actually being added for existing users
- deadzone value is set and applied separately for each sticks
There are some small changes in the control panel to help understanding it better at a glance. The order of the items are changed based on what I expect to be used more frequently. And now there's a prompt telling a user that it's waiting for an input. 'I don't see anything' is the first sentence most frequently said by people I watched trying to set up Mini Padder, so I think there should be a bigger amount of people who were confused by that and stopped using. I hope this prompt will prevent that from happening again.
You can make a new mapping for DualSense with current assignment system, but I am worried that people who haven't used Mini Padder would say it doesn't work then leave. Thanks to Gordon I could get the button mapping information and add that to the list of default mappings.
Changelog:
- Fixed in-app updater's version comparison mechanic
It turns out it was comparing version numbers as strings, which was overseen because there were not many needs to apply a change to the local storage, while the minor version number passed 10.- Placement changes in the control panel
- Input assignment and deadzone buttons are now laid vertically, to tell each buttons on the same row are for the same gamepad slot.
- Panel items are sorted by the frequency a user is expected to use after they set up.
- Added a prompt for first input.
- Added mapping for DualSense
Added a new skin Biker which is made to imitate the input overlay of Trials Rising. While trying to make this skin, I found some ways to expand the skin customization capability. Making this skin also got me into fixing a lasting bug, where the sticks were stuttering during fading out if they're not at the exact centre position.
- make
drawImageByPos
to accept single axis inputs
Now you can use this instruction for trigger buttons which have a single axis input.- apply alpha values for button fading-out process
This change removes duplicated lines in Disc D-pad skins. Corresponding changes were also made on the wiki page.- add an alternative stick state check
This change adds a new property option for skin customization. See the wiki page linked above.- fix stick stuttering when fading out
- add Biker skin
This is a simple looking skin only showing one analog stick and both trigger buttons. This skin uses the new property option, and some long chains of instruction to achieve some effects. Here's a link to the skin file.
- changed the sprite for shoulder buttons of Disc (Super) skin to a new one instead of the inherited one from gamepad skins
- moved shoulder buttons and other buttons of MegaPad skin away from each other by 2px
The dpad and buttons felt distanced a bit much, but I wasn't sure if it's better to put them closer.
I adjusted their position, and also added a semi-transparent background for the buttons as they're not placed over a right stick, not like in the modern gamepad skin.
- Adjusted the position of sub buttons in M layouts so it looks less different to the actual joystick while keeping the buttons in a row.
- The button row and the main area of the stick and face buttons are slightly distanced so there is a space for the start button between them, if someone wants to add it in the skin.
- Sprites for a smaller button for joystick skins are added to the spritesheets.
An input fading right after being released makes it much easier to tell inputs that were just involved in the action a moment ago, and ones that are not involved in the action currently happening. I decided to make this a default set of values after using it for a while.
Value <=3.10.2 3.10.3 Time 8, 16, 32 0, 8, 12 Opacity 0.5, 0.1, 0 0.5, 0.1, 0 Duration 4 1
The button gap on the layout was based on the buttons' full size, including their frames. Since the other layouts referred to the moving part of the buttons, I tried to reposition this layout with the same standard. By the way, the vertical gap on the layout is still narrower than that of others.
This is a layout where face buttons are laid in the middle, and the buttons are close to each other.
While making this layout, I decided to represent the vertical position of buttons to the stick, and made the change to A layout as well. V layout didn't need it because it's already made with that in mind, so this change should've already been made to keep the consistency between joystick variations.
Most skin files had one line with the space indentation. I converted them to have the tab indentation, hence the big number of changed files in the commit log.
- fix one error message being shown as
[object Object]
- adjust position in Joystick A layout
- add Joystick M layout
- convert space indentation of one line in most of skins to tab indentation
A browser capture can stop for a brief time and delay rendering of some frames in the time when it's previously hidden, or the computer briefly becomes busy. This update changes the behaviour of Error Log so it can log when delayed frames occur.
- log 'warning' messages to Error Log
- change timestamps in Error Log to local time string
- warn when delayed frames occur