JoySens - Analog stick sensitivity plugin for OE firmwares
(C) 2007 Raphael <email@example.com>
1. How to install
Copy joysens.prx and joysens.ini to ms0:/SEPLUGINS/ (Create if the folder doesn't exist).
Add the line "ms0:/SEPLUGINS/joysens.prx" to game.txt (and vsh.txt if you want).
Create those files if they don't exist.
Hard reboot your PSP into recovery menu (hold R Trigger during startup) and enable the plugin. Done.
This plugin changes the analog sticks sensitivity to more useablity in the following ways:
- It changes the axial mapping to a cubic (or other selected) form so that small movements don't get recognized too early.
This means that you can move cursors more exactly and don't have it jumping around on the screen.
- It applies a sensitivity scale to linearly change the responsiveness (and maximal amplitude for values < 100%)
of the stick. With this you can 'slow down' the analog stick.
- It filters movement of the analog stick so that abrupt changes are further smoothed (adjustable).
- It is possible to calibrate the analog stick so it centers properly
This makes the analog stick more useable for high-precision needs like FPS or anything where you move something
with the analog stick that needs to be placed next-to-pixel-precise.
To turn the plugin on/off at any given time press NOTE + SELECT.
To change sensitivity press NOTE + LEFT TRIGGER or NOTE + RIGHT TRIGGER.
Default sensitivity is 100%. The minimum is 10% (which effectively makes the analog stick unuseable)
and maximum is 400% (which is way sensitive).
To change smoothness of movement press NOTE + LEFT or NOTE + RIGHT.
Default smooth is 100%. The minimum is 10% (which effectively makes the analog stick unuseable)
and maximum is 400% (which is way sensitive - the smallest change will give maximum amplitude already).
To change the adjust function exponent press NOTE + UP or NOTE + DOWN.
Default is 3. Minimum is 0 (which really turns the analog stick off) and maximum is 32 (which only gives
a response when the stick is moved to its extremes, making it quasi-digital). The higher this value the better
the deadzone gets 'hidden'.
A value of 1 will result in normal behaviour and anything < 1 will probably only make the stick behave worse.
If you want to get an imagination of what you are setting with this, plot the function x * (x/127)^(a-1) in
the range 0 to 127 for your chosen adjustment value a. If you don't have a clue about this, just forget it :P
To change the calibration either change it manually in the ini file (center) or try the following:
- Move the analog stick to the top-left and hold it a few seconds, then release slowly until it's centered and don't
touch it anymore. Press NOTE+SQUARE,
- Move the analog stick to the bottom-right and hold a few seconds, release slowly until centered. Press NOTE+SQUARE.
- Repeat these steps until the center point has been found correctly (optimally, this is the mean value of the axes
minimal and maximal value when the stick isn't touched).
Default value is <0,0>.
To reset all values to default press NOTE+CROSS.
To pin/unpin the info output press NOTE + TRIANGLE. This will make the info output stay on top of the screen
even when no button is pressed.
If not pinned to show the current settings only press and hold NOTE (won't work in all games perfectly - one being GTA:VCS,
but it works in XMB flawlessly and without any flicker).
You should see an output on the top-left of the screen like this:
Adjusted analog axes: <16,12> -> <0,0>
JoySens: on (info pinned)
Center: <0,0> (127,127) -> (-128, -128)
The first line is important to check if the analog stick properly maps the axes. Optimally the second coordinate pair
should be constantly <0,0> if you don't touch the stick (while the first pair might jump around) and still give the full
range from -128 to 127 in both axes (unless sensitivity < 100%) when you move the stick to the extremes.
This line doesn't give the proper values in XMB other than photo viewer, browser and system information as XMB doesn't poll
the analog stick (see InsertWittyName's plugin for adding analog stick to your XMB - I didn't test for compatibility though).
The last line gives the current center offset plus the measured minimum and maximum amplitude of untouched stick (gets
updated with NOTE+SQUARE). They only should matter to you when you constantly get very odd values for center (values < -30 or > 30).
To save the current settings press NOTE + CIRCLE.
Also, you can change the button mapping in the joysens.ini file by properly setting the buttons. Just make sure there
is no double mapping. Possible are SELECT,START,RTRIGGER,LTR IGGER,TRIANGLE,CROSS,CIRC LE,SQUARE,LEFT,RIGHT,UP,D OWN.
Any different value will turn off that function for online-adjustment.
You can't change the NOTE button mapping though.
- Better support for ingame info output (Find a better function hook than sceDisplaySetFrameBuf as some games seem to
bypass that function - namely GTA:VCS).
This plugin was tested under CFW 3.10-OE-A', 3.40-OE-A and 3.51-M33-7 and in the games GTA:VCS, CoD:RTV, RidgeRacer and Tekken5
- Added better calibration method (keeps the axis scale in range)
- Fixed automatic calibration function (gives pretty reliable results now) and moved vertical and horizontal calibration into
- Added a movement smooth factor (how much changes in the axes get scaled, the lower the smoother any movement gets recognized)
- Added an adjust parameter which controls the exponent of the adjustment function (default 3.0 meaning a cubic form)
- Added button mapping configuration
- Fixed a small error in the axis mapping, where values were mapped in range -127 to 128 where it should be -128 to 127
- Added setting save functionality
- Improved the readme with better instructions
- Added compatibility for 3.40 OE and higher firmwares
Thanks to all who made the PSPSDK possible.
Special thanks to TyRaNiD for PSPLINK. The main function hook functionality is based on remotejoy's hook function.
Greets to the people from ps2dev.org and psp-programming.com
This software was not produced by Sony Corp nor any of its affiliates or representatives.
It is not endorsed by Sony, therefore they hold no responsibility for the use of this modification with their product.
PlayStation is a registered trademark of Sony Computer Entertainment, to which I have no affiliation.
Use at your own risk. I may not be held responsible for any harm that this software causes to your PSP.