Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

AnalogsEnhancerKai Vita: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 2: Line 2:
|title=AnalogsEnhancerKai
|title=AnalogsEnhancerKai
|image=psvita2.png
|image=psvita2.png
|description=A Modified version of AnalogEnhancer plugin for PSVITA. Now with outer deadzone and 8-way digital.
|description=A Modified version of AnalogEnhancer with new features.
|author=t0mizwf26, yakit4k0, Rinnegatamante
|author=t0mizwf26, yakit4k0, Rinnegatamante
|lastupdated=2025/08/02
|lastupdated=2025/08/02
Line 19: Line 19:
|image_alt=AnalogsEnhancerKai
|image_alt=AnalogsEnhancerKai
}}
}}
A Modified version of AnalogEnhancer plugin for PSVITA. Now with outer deadzone and 8-way digital.
A Modified version of [[AnalogsEnhancer Vita |AnalogsEnhancer plugin]]. Now with outer deadzone and 8-way digital.


Based on the original AnalogsEnhancer v1.1 code (commit [https://github.com/Rinnegatamante/AnalogsEnhancer/tree/0629c4b8ca124bc08cf6a6dc3e759a0eb8bbc45a 0629c4b])
Based on the original AnalogsEnhancer v1.1 code (commit [https://github.com/Rinnegatamante/AnalogsEnhancer/tree/0629c4b8ca124bc08cf6a6dc3e759a0eb8bbc45a 0629c4b])
With "Outer Dead Zone" idea from u/lizin5ths (fork [https://github.com/Haasman0/AnalogsEnhancer Haasman0 / AnalogsEnhancer])
With "Outer Dead Zone" idea from u/lizin5ths (fork [https://github.com/Haasman0/AnalogsEnhancer Haasman0 / AnalogsEnhancer]).


== Features Explained ==
== Installation ==
=== Introduction ===
Copy AnalogsEnhancerKai.skprx into "ur0:tai/".
If .txt config file is missing, the following default config will be used instead.
<code>l=0,127,n,s=0,0;r=0,127,n,s=0,0;n</code>
Which means every feature offered by this plugin is turned OFF.


https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-01.png
Customise AnalogsEnhancerKai's config.txt config file. You can either place it in "ux0:data/AnalogsEnhancerKai/" or "ux0:data/".


=== 2) Inner Dead Zone ===
Option 1 (ux0:data/AnalogsEnhancerKai/):
Classic feature from the original Rinnegatamante/AnalogsEnhancer.
*Copy "config.txt" into "ux0:data/AnalogsEnhancerKai/".


With 2 different modes to choose from: Rescaling On & Rescaling Off.
Option 2 (ur0:tai/):
 
*Rename "config.txt" to "AnaEnKaiCfg.txt" and place into "ur0:tai/".
==== 2.1) Inner Dead Zone - Rescaling On (Scaled Radial Dead Zone) ====
*( Handle ur0:tai/, or anything ur0: with Caution )
<code>l=64,127,y,s=0,0;r=64,127,y,s=0,0;n</code>
*( If both "ur0:tai/AnaEnKaiCfg.txt" &amp; "ux0:data/AnalogsEnhancerKai/config.txt" are present, will use "AnaEnKaiCfg.txt" )
 
This is probably the most common Dead Zone people would use to fix drifting analogue sticks.
 
The full range is available, no input is ignored (skipped), allowing low-magnitude adjustments.
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-02.png
 
==== 2.2) Inner Dead Zone - Rescaling Off (Radial Dead Zone) ====
<code>l=16,127,n,s=0,0;r=16,127,n,s=0,0;n</code>
 
Fewer people would choose to use this. Less ideal, some input is ignored (skipped).
 
In this example, low-magnitude adjustments with magnitude < 16 are impossible.
 
There's one advantage, though. Notice the gradient here is still 1?
 
Unlike the previous Rescaling On example with gradient 2.
 
This means it's a little easier to make precise adjustments for the remaining range (16 to Max).
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-03.png
 
=== 3) Outer Dead Zone ===
Outer Dead Zone is useful with situations like
 
"since putting little joystick covers on them makes it extremely difficult to hit the maximum values."
u/lizin5ths
 
Outer Dead Zone with Rescaling On could help to solve the problem by reaching the max earlier. The code is based on u/lizin5ths's implementation (fork [https://github.com/Haasman0/AnalogsEnhancer Haasman0 / AnalogsEnhancer]), with many improvements.
 
Outer Dead Zone with Rescaling Off however, is something a little different. More on that below.
 
==== 3.1) Outer Dead Zone - Rescaling On (360-Degree Movement) ====
<code>l=0,80,y,s=0,0;r=0,80,y,s=0,0;n</code>
 
In this example, the stick reaches the max much earlier. Bring more ''cute cat paw claw grip cap cover''!!.
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-04.png
 
==== 3.2) Outer Dead Zone - Rescaling Off (8-Way, "Axial Dead Zone") ====
<code>l=0,80,n,s=0,0;r=0,80,n,s=0,0;n</code>
 
The problem is solved by using Rescaling On.
 
Q: What should Rescaling Off do? A: Go retro.
 
Now here's something niche.
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-05.png
 
==== 3.3) Whoa, hang on a second! ====
Why should people use a normal 360-degree analogue stick with only the outer one-third as 8-Way?
 
Right, but we could use Inner & Outer Dead Zone together.
 
<code>l=80,80,n,s=0,0;r=80,80,n,s=0,0;n</code>
 
Note the 8-Way always has an "Axial Dead Zone" of magnitude 49.
 
So by setting "Inner Dead Zone = Outer Dead Zone", we could have an 8-Way joystick with customisable actuation point (49 to 126)
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-06.png
 
<code>l=80,80,y,s=0,0;r=80,80,y,s=0,0;n</code>
 
You probably guessed we could do the same with Rescaling On, 360-Degree Movement with Max output only.
 
However, personally, I can't think of a reason to.
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-07.png
 
=== 4) S for Sniper? Snail? Shooter? ...Well, it's "Slow Mode" ===
 
Very boring name I know. Just call it Sniper / Snail / Shooter / High-Precision Mode, or whatever you like.
 
I'm just way too lazy to change all related names in the code, so I will keep calling it: "Slow Mode".
 
Remember earlier example in 2.1) Inner Dead Zone - Rescaling On (Scaled Radial Dead Zone)?
 
<code>l=64,127,y,s=0,0;r=64,127,y,s=0,0;n</code>
 
Inner 50% = Dead Zone, gradient is "2" instead of the normal "1". Everything's so fast, it's hard to make tiny adjustments!
 
Let's try to fix this, but unfortunately with a price to pay.
 
==== 4.1) Slow Mode - Rescaling On ====
 
<code>l=64,127,y,s=32,16;r=64,127,y,s=32,16;n</code>
 
Change <code>s=0,0</code> to <code>s=32,16</code>, here's the result:
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-08.png
 
Now it's easier to sneak / snipe.
 
However, the outer half is sacrificed. Gradient is increased, making the outer half even harder to do tiny adjustments.
 
==== 4.2) Slow Mode - Rescaling Off ====
<code>l=16,127,n,s=32,16;r=16,127,n,s=32,16;n</code>
 
Also change <code>s=0,0</code> to <code>s=32,16</code>, see what happens here when Rescaling Off:
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-09.png
 
In this particular example, within Slow Mode range (32), the output magnitude will always be "16".
 
==== 4.3) Have some fun ====
 
<code>l=16,80,n,s=32,8;r=16,80,n,s=32,8;n</code>
 
Who's going to do this?
 
https://dlhb.gamebrew.org/vitahomebrews/images/AnalogsEnhKaiVita-10.png
 
=== 5) ANALOG_WIDE ===
That last "n" in <code>l=0,127,n,s=0,0;r=0,127,n,s=0,0;n</code>
 
Also a classic feature from the original Rinnegatamante/AnalogsEnhancer.
 
Please allow me to quote from [https://github.com/Rinnegatamante Rinnegatamante]
 
"ANALOG_WIDE is one of the two modalities to poll analogs from Vita OS (one being ANALOG that simulates PSP polling and ANALOG_WIDE)."
 
"In ANALOG mode (used even in several commercial games as well as PSP and PSX titles), max range of analogs is reduced thus making analogs feel less reactive."
 
It's a very nice feature but might [https://github.com/Rinnegatamante/AnalogsEnhancer/issues/2 "causes issues in some games"].
 
So it's disabled by default in AnalogsEnhancerKai.
 
If needed, please re-enable it manually (by changing that last n into y).
 
== How to Use ==
# Copy AnalogsEnhancerKai.skprx into ur0:tai/
# Customise AnalogsEnhancerKai's config.txt config file
# Copy config.txt into ux0:data/AnalogsEnhancerKai
 
Alternatively, if you prefer to use ur0:tai/ instead:
 
Rename config.txt to AnaEnKaiCfg.txt
Copy AnaEnKaiCfg.txt directly into ur0:tai/
 
( !! Handle "ur0:tai/", or anything "ur0:" with Caution !! )
( If both ur0:tai/AnaEnKaiCfg.txt & ux0:data/AnalogsEnhancerKai/config.txt are present, will use AnaEnKaiCfg.txt )
 
Edit ur0:tai/config.txt, add the following, and save


Edit "ur0:tai/config.txt", add the following, and save.
<pre class="notranslate"># AnalogsEnhancerKai
<pre class="notranslate"># AnalogsEnhancerKai
*KERNEL
*KERNEL
ur0:tai/AnalogsEnhancerKai.skprx</pre>
ur0:tai/AnalogsEnhancerKai.skprx</pre>
Reboot PS Vita.


Reboot PS Vita
Note: If .txt config file is missing, the default config will be used instead, which means every feature offered by this plugin is turned OFF.


== Understand & Customise Config File ==
==User guide==
 
=== Config file ===
<code>l=0,127,n,s=0,0;r=0,127,n,s=0,0;n</code>
Default config: <code>l=0,127,n,s=0,0;r=0,127,n,s=0,0;n</code>


Break it into 3 sections:
Break it into 3 sections:
{| class="wikitable" style="border-spacing: 0px; margin-bottom: 16px; display: block; width: max-content; max-width: 100%; overflow: auto; font-variant-numeric: tabular-nums; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal;"
{| class="wikitable" style="border-spacing: 0px; margin-bottom: 16px; display: block; width: max-content; max-width: 100%; overflow: auto; font-variant-numeric: tabular-nums; font-variant-east-asian: normal; font-variant-alternates: normal; font-variant-position: normal; font-variant-emoji: normal;"
|- style="border-top-width: 0.909091px; border-top-color: rgba(209, 217, 224, 0.7);"
|- style="border-top-width: 0.909091px; border-top-color: rgba(209, 217, 224, 0.7);"
Line 305: Line 158:
<code>l=64,127,y,s=32,16;r=64,127,y,s=32,16;n</code>
<code>l=64,127,y,s=32,16;r=64,127,y,s=32,16;n</code>
32 > (127-64)/2, <code>s=32,16</code> will get autocorrected to <code>s=31,16</code>
32 > (127-64)/2, <code>s=32,16</code> will get autocorrected to <code>s=31,16</code>
==== Inner Dead Zone ====
Classic feature from the original Rinnegatamante/AnalogsEnhancer. With 2 different modes to choose from: Rescaling On & Rescaling Off.
*'''Rescaling On (Scaled Radial Dead Zone)'''
** <code>l=64,127,y,s=0,0;r=64,127,y,s=0,0;n</code>
** In this example, the stick ignores the first 50% of the movement but scales the remaining range. Best for fixing drift without losing precision.
*'''Rescaling Off (Radial Dead Zone)'''
** <code>l=16,127,n,s=0,0;r=16,127,n,s=0,0;n</code>
** Fewer people would choose to use this. Less ideal, some input is ignored (skipped).
** In this example, low-magnitude adjustments with magnitude < 16 are impossible.
** With rescaling off meaning it's a little easier to make precise adjustments for the remaining range (16 to Max).
==== Outer Dead Zone ====
Outer Dead Zone is useful for those who use joystick covers or grips that make it hard to push the stick all the way.
Outer Dead Zone with Rescaling On could help to solve the problem by reaching the max earlier. The code is based on u/lizin5ths's implementation, with many improvements. Outer Dead Zone with Rescaling Off however, is something a little different.
*'''Rescaling On (360-Degree Movement)'''
**<code>l=0,80,y,s=0,0;r=0,80,y,s=0,0;n</code>
**In this example, the stick hits 100% output at 80% input.
*'''Rescaling Off (8-Way, "Axial Dead Zone")'''
**<code>l=0,80,n,s=0,0;r=0,80,n,s=0,0;n</code>
**The outer part of the stick acts like a digital joystick (up/down/left/right only).
**Feels like old-school fighting games.
*'''Using Inner & Outer Dead Zone together:'''
** <code>l=80,80,n,s=0,0;r=80,80,n,s=0,0;n</code>
** By setting "Inner Dead Zone = Outer Dead Zone", you could make the stick 8-way only when pushed hard.
==== Slow Mode ====
Aka Sniper / Snail / Shooter / High-Precision Mode.
*'''Rescaling On'''
** <code>l=64,127,y,s=32,16;r=64,127,y,s=32,16;n</code>
** This option makes small movements easier, but outer range becomes twitchier.
*'''Rescaling Off'''
** <code>l=16,127,n,s=32,16;r=16,127,n,s=32,16;n</code>
** If rescaling is off (n), Slow Mode locks the output to a fixed value (e.g. always 16).
==== ANALOG_WIDE ====
That last "n" in <code>l=0,127,n,s=0,0;r=0,127,n,s=0,0;n</code>
Also a classic feature from the original Rinnegatamante/AnalogsEnhancer: "ANALOG_WIDE is one of the two modalities to poll analogs from Vita OS (one being ANALOG that simulates PSP polling and ANALOG_WIDE). In ANALOG mode (used even in several commercial games as well as PSP and PSX titles), max range of analogs is reduced thus making analogs feel less reactive."
It's a very nice feature but might "causes issues in some games". So it's disabled by default in AnalogsEnhancerKai.
If needed, please re-enable it manually (by changing that last n into y).


==Changelog==  
==Changelog==  
* 1.1.0
'''1.1.0'''
** Add new Slow Mode feature for better low-magnitude stick movement
* Add new Slow Mode feature for better low-magnitude stick movement.
** Can use either ur0:tai or ux0:data/AnalogsEnhancerKai as config file folder
* Can use either ur0:tai or ux0:data/AnalogsEnhancerKai as config file folder.
** Config structure changed and is no longer compatible with older versions
* Config structure changed and is no longer compatible with older versions.
* 1.0.1
'''1.0.1'''
** Initial Release
* Initial Release.
** Add new Outer Dead Zone feature
* Add new Outer Dead Zone feature.
** Config file moved to ur0:tai/
* Config file moved to ur0:tai/.


== Acknowledgements ==
==Credits==
Acknowledgements:
* [https://github.com/Rinnegatamante Rinnegatamante], for the original plugin
* [https://github.com/Rinnegatamante Rinnegatamante], for the original plugin
* [https://github.com/yakit4k0 yakit4k0], for compiling, testing, making README images, and helping to implement Outer Dead Zone & Slow Mode
* [https://github.com/yakit4k0 yakit4k0], for compiling, testing, making README images, and helping to implement Outer Dead Zone & Slow Mode
Line 323: Line 224:


== External links ==
== External links ==
* Github - https://github.com/t0mizwf26/AnalogsEnhancerKai
* GitHub - https://github.com/t0mizwf26/AnalogsEnhancerKai
* VitaDB - https://www.rinnegatamante.eu/vitadb/#/info/1294
* VitaDB - https://www.rinnegatamante.eu/vitadb/#/info/1294

Revision as of 01:32, 3 August 2025

AnalogsEnhancerKai
General
Authort0mizwf26, yakit4k0, Rinnegatamante
TypePlugins
Version1.1.0
LicenseGPL-3.0
Last Updated2025/08/02
Links
Download
Website
Source

A Modified version of AnalogsEnhancer plugin. Now with outer deadzone and 8-way digital.

Based on the original AnalogsEnhancer v1.1 code (commit 0629c4b) With "Outer Dead Zone" idea from u/lizin5ths (fork Haasman0 / AnalogsEnhancer).

Installation

Copy AnalogsEnhancerKai.skprx into "ur0:tai/".

Customise AnalogsEnhancerKai's config.txt config file. You can either place it in "ux0:data/AnalogsEnhancerKai/" or "ux0:data/".

Option 1 (ux0:data/AnalogsEnhancerKai/):

  • Copy "config.txt" into "ux0:data/AnalogsEnhancerKai/".

Option 2 (ur0:tai/):

  • Rename "config.txt" to "AnaEnKaiCfg.txt" and place into "ur0:tai/".
  • ( Handle ur0:tai/, or anything ur0: with Caution )
  • ( If both "ur0:tai/AnaEnKaiCfg.txt" & "ux0:data/AnalogsEnhancerKai/config.txt" are present, will use "AnaEnKaiCfg.txt" )

Edit "ur0:tai/config.txt", add the following, and save.

# AnalogsEnhancerKai
*KERNEL
ur0:tai/AnalogsEnhancerKai.skprx

Reboot PS Vita.

Note: If .txt config file is missing, the default config will be used instead, which means every feature offered by this plugin is turned OFF.

User guide

Config file

Default config: l=0,127,n,s=0,0;r=0,127,n,s=0,0;n

Break it into 3 sections:

Section Content
Left Stick l=0,127,n,s=0,0;
Right Stick r=0,127,n,s=0,0;
----------- ----------------
ANALOG_WIDE n

Now, we could see Left Stick and Right Stick configs sharing the same structure: l(/r)=0,127,n,s=0,0;

Each part means:

Config Meaning
l(/r)=0,127, Inner Dead Zone, Outer Dead Zone
n, Rescaling (y=ON ; n=OFF)
s=0,0; Slow Mode Range, Slow Mode Max Output
------------ -------------------------------------
n 5) ANALOG_WIDE, (y=ON ; n=OFF)

For each non-"y/n" config:

Config Legit Range if "ON" Special Cases (switch OFF, etc.)
Inner Dead Zone 1 ~ 126 0 : Inner DZ OFF
> 126 : Stick Disabled (Always Centre)
-------------------- ---------------------- -------------------------------------------------------------
Outer Dead Zone 1 ~ 126 0 or 127 : Outer DZ OFF
Never overlap, Autocorrect if Outer DZ < Inner DZ
-------------------- ---------------------- -------------------------------------------------------------
Slow Mode Range 5 ~ "50% Non-DZ range" 0 : Slow Mode OFF
"50% Non-DZ range" means 0.5 * (Outer DZ - Inner DZ)
Autocorrect to Legit Min/Max
if both Inner DZ & Outer DZ = OFF, Slow Mode OFF
if 0.5 * (Outer DZ - Inner DZ) < 5, Slow Mode OFF
-------------------- ---------------------- -------------------------------------------------------------
Slow Mode Max Output 5 ~ "Slow Mode Range" Autocorrect to Legit Min/Max

Eagle-eyed readers might spot in 4.1) Slow Mode - Rescaling On l=64,127,y,s=32,16;r=64,127,y,s=32,16;n 32 > (127-64)/2, s=32,16 will get autocorrected to s=31,16

Inner Dead Zone

Classic feature from the original Rinnegatamante/AnalogsEnhancer. With 2 different modes to choose from: Rescaling On & Rescaling Off.

  • Rescaling On (Scaled Radial Dead Zone)
    • l=64,127,y,s=0,0;r=64,127,y,s=0,0;n
    • In this example, the stick ignores the first 50% of the movement but scales the remaining range. Best for fixing drift without losing precision.
  • Rescaling Off (Radial Dead Zone)
    • l=16,127,n,s=0,0;r=16,127,n,s=0,0;n
    • Fewer people would choose to use this. Less ideal, some input is ignored (skipped).
    • In this example, low-magnitude adjustments with magnitude < 16 are impossible.
    • With rescaling off meaning it's a little easier to make precise adjustments for the remaining range (16 to Max).

Outer Dead Zone

Outer Dead Zone is useful for those who use joystick covers or grips that make it hard to push the stick all the way.

Outer Dead Zone with Rescaling On could help to solve the problem by reaching the max earlier. The code is based on u/lizin5ths's implementation, with many improvements. Outer Dead Zone with Rescaling Off however, is something a little different.

  • Rescaling On (360-Degree Movement)
    • l=0,80,y,s=0,0;r=0,80,y,s=0,0;n
    • In this example, the stick hits 100% output at 80% input.
  • Rescaling Off (8-Way, "Axial Dead Zone")
    • l=0,80,n,s=0,0;r=0,80,n,s=0,0;n
    • The outer part of the stick acts like a digital joystick (up/down/left/right only).
    • Feels like old-school fighting games.
  • Using Inner & Outer Dead Zone together:
    • l=80,80,n,s=0,0;r=80,80,n,s=0,0;n
    • By setting "Inner Dead Zone = Outer Dead Zone", you could make the stick 8-way only when pushed hard.

Slow Mode

Aka Sniper / Snail / Shooter / High-Precision Mode.

  • Rescaling On
    • l=64,127,y,s=32,16;r=64,127,y,s=32,16;n
    • This option makes small movements easier, but outer range becomes twitchier.
  • Rescaling Off
    • l=16,127,n,s=32,16;r=16,127,n,s=32,16;n
    • If rescaling is off (n), Slow Mode locks the output to a fixed value (e.g. always 16).

ANALOG_WIDE

That last "n" in l=0,127,n,s=0,0;r=0,127,n,s=0,0;n

Also a classic feature from the original Rinnegatamante/AnalogsEnhancer: "ANALOG_WIDE is one of the two modalities to poll analogs from Vita OS (one being ANALOG that simulates PSP polling and ANALOG_WIDE). In ANALOG mode (used even in several commercial games as well as PSP and PSX titles), max range of analogs is reduced thus making analogs feel less reactive."

It's a very nice feature but might "causes issues in some games". So it's disabled by default in AnalogsEnhancerKai.

If needed, please re-enable it manually (by changing that last n into y).

Changelog

1.1.0

  • Add new Slow Mode feature for better low-magnitude stick movement.
  • Can use either ur0:tai or ux0:data/AnalogsEnhancerKai as config file folder.
  • Config structure changed and is no longer compatible with older versions.

1.0.1

  • Initial Release.
  • Add new Outer Dead Zone feature.
  • Config file moved to ur0:tai/.

Credits

Acknowledgements:

External links

Advertising: