Hacking Nintendont Controller-Configurations

VinsCool

Persona Secretiva Felineus
Global Moderator
Joined
Jan 7, 2014
Messages
14,600
Trophies
4
Location
Another World
Website
www.gbatemp.net
XP
25,218
Country
Canada
That's fine if they work on the test, but in game they don't work as analog. Its has if they have 2 positions: pressed or not.

which game? games using analog are working fine to me. Eg. Super Mario Sunshine, if I press softly on R button, Mario Sprinkle less water than a full press. The same effect happens in luigi's Mansion. Mid pressure cause a semipowered vaccum. I have no other examples right now, but analog works correctly for me.
 

staltux

Member
Newcomer
Joined
Jul 25, 2014
Messages
6
Trophies
0
Age
34
XP
52
Country
Brazil
The wii clasic controller pro has digital shoulder buttons. you need to add DigitalLR=1 to your controller.ini
Not sure if the controller.ini will work for the clasic controler as the offsets specified for the analog shoulder triggers are pat the end of the valid data. After making the change test every control in HDTest. One wrong setting can make gmes crash or appear not to work.


pressing the cross button change two offsets at same time
example
the rigth change offset 5 and 7 from 00 to 02

how I can configure this in the controller.ini ?
 

Howard

Well-Known Member
Member
Joined
May 1, 2012
Messages
442
Trophies
0
XP
431
Country
United States
pressing the cross button change two offsets at same time
example
the rigth change offset 5 and 7 from 00 to 02

how I can configure this in the controller.ini ?
Offset 5=02 is configured as dpad right.
I recomend retesting everything.
If thats what actualy happens It cant currently be setup correctly.
 

pokeparadox

Well-Known Member
Member
Joined
Dec 31, 2008
Messages
230
Trophies
0
XP
782
Country
Hi Chaps... I have an Adaptoid (N64 controller adaptor which even supports the rumble pack for force feedback with the windows drivers) and I've tried to set it up for nostalgic playback for Zelda Collectors Edition!
It's not quite there I'm not sure if you can assign the C buttons to the C stick...
And the values for the analogue stick are strange... and link runs around in circles...
Also I know I need to swap my CLeft and Cright mapped to the gamecube X and Y...

Any help in fixing this would be appreciated and it could be another addition to the controller config repo if it's possible to fix it.
Code:
AnalogueUp:00 00 B5 00 00
AnalogueDn:00 00 4B 00 00
AnalogueLf:50 0B 00 00 00
AnalogueRt:B0 04 00 00 00

Code:
[Adaptoid]
VID=06F7
PID=0001
Polltype=1
DPAD=0
A=3,01
B=3,08
X=3,10
Y=3,04
Z=3,20
L=4,02
R=3,80
S=4,01
Left=4,10
Down=4,08
Right=4,20
Up=4,04
StickX=0
StickY=2
CStickX=3,10
CStickY=3,02
LAnalog=0
RAnalog=0

Sorry to bump, but... bump.

EDIT and relevent because Adaptoid also modifies two offsets for the analogue stick...
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,221
Trophies
2
XP
34,419
Country
Mexico
I had it with this motherf*cking controller in my motherf*cking app.!
Seriously, the Playstation controller has the WORST design I have ever seen in a console since household gaming became available, and that comes from someone who has been playing from Atari 2600 onwards.

Yet I am stuck with it in the mean time for Nintendont until I get my hands on another reliable controller. This time, not Sony-related.

One quick question, Nintendont seems to be getting the data from the left analog stick as only 8-directions, and not fully analog as it should, and the HID test does give analog values for each rotation of the stick.
Why does this happen? And how can it be fixed?
 

migles

All my gbatemp friends are now mods, except for me
Member
Joined
Sep 19, 2013
Messages
8,033
Trophies
0
Location
Earth-chan
XP
5,299
Country
China
my controller with no button presses is like this:

01 80 7F 80 7F 08 00 74 00 (and the rest are 00)
the D pad default position is 08, if i press any face button (a b y or x) it changes to 28

do i need to configure the face buttons like this: A=5,28 OR like this: A=5,20 ?

controller in question is logitech F710, it should be the same as F510 (the PID is just 1 number above....) but it is completly diferent..

also controller is not detected on Xinput mode (xbox) but it is compatible in Direct input mode...


EDIT: i figured out the F710 just differs one ting from her brother, the offset is just +1
so in f510 the offset for A is 4,20, in the F710 controller is 5,20...

and i don't know where i should map LAnalog or RAnalog, or they are in the config for dummy?
 

nastys

ナースティス
Member
Joined
Aug 5, 2014
Messages
1,730
Trophies
0
Age
26
Location
Earth
XP
1,794
Country
Italy
Can someone help me configuring a Thrustmaster Dual Analog 4 controller?
All buttons work fine (excluding analog triggers, which I set both to 1) but sticks do not work correctly.

Here is how it looks like:
Default:
00 00 F0 00 00 00 80 00

L-Stick most Left:
00 00 F0 80 00 00 80 00

L-Stick most Right:
00 00 F0 7F 00 00 80 00

L-Stick very slightly Left (immediately before 00):
00 00 F0 FF 00 00 80 00


So it's like this:

80----FF·00-----7F

(80 = 128; FF = 256; 00= 0; 7F = 127)

The same applies to L-Stick Top and Bottom, R-Stick Left and Right while R-Stick Top and Bottom is fine (00 top, 80 default, FF bottom).

How can I configure those sticks correctly?

My current controller.ini (with sticks not working correctly except C-Stick Up and Down):
Code:
[Thrustmaster Dual Analog 4]
VID=044F
PID=B315
Polltype=1
DigitalLR=1
DPAD=1
A=0,04
B=0,01
X=0,08
Y=0,02
Z=0,40
L=0,20
R=0,80
S=1,02
Left=2,60
Down=2,40
Right=2,20
Up=2,00
RightUp=2,10
DownRight=2,30
DownLeft=2,50
UpLeft=2,70
StickX=3
StickY=4
CStickX=5
CStickY=6

EDIT: I solved editing the source code.
EDIT2: I created a patch on Google Code and it's waiting to be merged and I sent a pull request for the config.ini on GitHub.
 

Rob Blou

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
754
Trophies
0
Age
41
XP
1,508
Country
Canada
So as I said earlier, I tried:
[Dual Shock]
VID=054C
PID=0268
Polltype=0
DPAD=0
Power=2,01
A=3,80
B=3,40
X=3,20
Y=3,10
Z=3,08
L=12,FF
R=13,FF
S=2,08
Left=2,80
Down=2,40
Right=2,20
Up=2,10
StickX=6
StickY=7
CStickX=8
CStickY=9
LAnalog=12
RAnalog=13

So that L= and R= would only be triggered when fully pressed on the DS3 but it doesn't work ... it seems like Nintendont only allows one offset to be used at a time or something :S
 

VinsCool

Persona Secretiva Felineus
Global Moderator
Joined
Jan 7, 2014
Messages
14,600
Trophies
4
Location
Another World
Website
www.gbatemp.net
XP
25,218
Country
Canada
Rob Blou I tried everything you said earlier, it looks like something should be changed in nintendont code. Something like: Removing L= R= entries, replace them by LAnalogClick= and RAnalogClick=, which could use the same offset of Analog, but only while it reach FF... I don't know if this could be possible... Anyone knows?
 
  • Like
Reactions: ShadowOne333

Rob Blou

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
754
Trophies
0
Age
41
XP
1,508
Country
Canada
Rob Blou I tried everything you said earlier, it looks like something should be changed in nintendont code. Something like: Removing L= R= entries, replace them by LAnalogClick= and RAnalogClick=, which could use the same offset of Analog, but only while it reach FF... I don't know if this could be possible... Anyone knows?

That would be the best way to go I think. Maybe FIX94 could confirm if that's doable.
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,221
Trophies
2
XP
34,419
Country
Mexico
Rob Blou I tried everything you said earlier, it looks like something should be changed in nintendont code. Something like: Removing L= R= entries, replace them by LAnalogClick= and RAnalogClick=, which could use the same offset of Analog, but only while it reach FF... I don't know if this could be possible... Anyone knows?

I agree with this.
It's a pain in the ass to have just bare digital inputs, this is more of a pain in games like Luigi's Mansion (the simplest thing as sucking up a ghost is a struggle) and Mario Sunshine (try to beat Shadow Mario stopping everytime you want to pour some sugah on him)

L button is not used for my Controller.ini, which means I have this one as free space.
Let's say:
L + L2 = Full analog press for AnalogTriggerL
L2 alone = Medium analog press for AnalogTriggerL
L + R2 = Full analog press for AnalogTriggerR
R alone = Medium analog press for AnalogTriggerR

Most of the controllers nowadays have 4 shoulder triggers, so it means we have a button to spare.
Also, we might remove the option for the Home button enabling some C-Stick changes, Devo does this also so I don't know why is that, just leave the C Stick (Right Analog Stick) to function as it should have.
This way we can leave the Home button for reset and Select button could be used for other things maybe related to Analog functions.

What do you think?
 
  • Like
Reactions: Lemzy101

Rob Blou

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
754
Trophies
0
Age
41
XP
1,508
Country
Canada
I agree with this.
It's a pain in the ass to have just bare digital inputs, this is more of a pain in games like Luigi's Mansion (the simplest thing as sucking up a ghost is a struggle) and Mario Sunshine (try to beat Shadow Mario stopping everytime you want to pour some sugah on him)

L button is not used for my Controller.ini, which means I have this one as free space.
Let's say:
L + L2 = Full analog press for AnalogTriggerL
L2 alone = Medium analog press for AnalogTriggerL
L + R2 = Full analog press for AnalogTriggerR
R alone = Medium analog press for AnalogTriggerR

Most of the controllers nowadays have 4 shoulder triggers, so it means we have a button to spare.
Also, we might remove the option for the Home button enabling some C-Stick changes, Devo does this also so I don't know why is that, just leave the C Stick (Right Analog Stick) to function as it should have.
This way we can leave the Home button for reset and Select button could be used for other things maybe related to Analog functions.

What do you think?

mmmm that would be terrible imho :S the goal here is to have the right behavior for the PS3 triggers since there's no physical clic when you push the triggers all the way (like the GC controller) so L= and R= should be triggered when LAnalog and RAnalog is at FF (all the way down). You can always assign L= and R= to L1 and R1 and leave the LAnalog and RAnalog to L2 and R2 if you want! but 2 button press is not fun :P
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,221
Trophies
2
XP
34,419
Country
Mexico
mmmm that would be terrible imho :S the goal here is to have the right behavior for the PS3 triggers since there's no physical clic when you push the triggers all the way (like the GC controller) so L= and R= should be triggered when LAnalog and RAnalog is at FF (all the way down). You can always assign L= and R= to L1 and R1 and leave the LAnalog and RAnalog to L2 and R2 if you want! but 2 button press is not fun :P

I was talking about a workaround for controllers with digital triggers, every controller that does not have any analog triggers.
 

Rob Blou

Well-Known Member
Member
Joined
Jul 16, 2013
Messages
754
Trophies
0
Age
41
XP
1,508
Country
Canada
I was talking about a workaround for controllers with digital triggers, every controller that does not have any analog triggers.

oh ok ... but you can always assign L= and R= to L1 and R1 ... your L2 and R2 would always be at max I guess but in Mario sunshine your R2 would trow water while running and R1 would stop to aim.
 

bobmcjr

Well-Known Member
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,232
Country
United States
So that L= and R= would only be triggered when fully pressed on the DS3 but it doesn't work ... it seems like Nintendont only allows one offset to be used at a time or something :S
I also just tried that. The issue is it's ANDing the mask to the value of the offset. So 0xFF (0b11111111) & 0x01 (0b00000001) = 1 which means that at any value, even 1, it still thinks it's triggered. 0x80 is as close as you can get to fully pressed, and it somewhat works in luigi's mansion for the fire/ice/water ball thing.

To fix it for fully pressed, there would need to be an optional third column for each button so something like [offset],[mask],[exact value] where if mask is 0, it would look at the 3rd column. Otherwise, it should ignore the 3rd column.
 
  • Like
Reactions: VinsCool

VinsCool

Persona Secretiva Felineus
Global Moderator
Joined
Jan 7, 2014
Messages
14,600
Trophies
4
Location
Another World
Website
www.gbatemp.net
XP
25,218
Country
Canada
I looked in PADReadGC.c and I see this:

Code:
if(HID_Packet[HID_CTRL->L.Offset] & HID_CTRL->L.Mask)
                        button |= PAD_TRIGGER_L;
                if(HID_Packet[HID_CTRL->R.Offset] & HID_CTRL->R.Mask)
                        button |= PAD_TRIGGER_R;

Then little further down:

Code:
else    //standard analog triggers
                        {
                                tmp_triggerL = HID_Packet[HID_CTRL->LAnalog];
                                tmp_triggerR = HID_Packet[HID_CTRL->RAnalog];
                        }
                        /* Calculate left trigger with deadzone */
                        if(tmp_triggerL > DEADZONE)
                                Pad[chan].triggerLeft = (tmp_triggerL - DEADZONE) * 1.11f;
                        else
                                Pad[chan].triggerLeft = 0;
                        /* Calculate right trigger with deadzone */
                        if(tmp_triggerR > DEADZONE)
                                Pad[chan].triggerRight = (tmp_triggerR - DEADZONE) * 1.11f;
                        else
                                Pad[chan].triggerRight = 0;

I am not really a coder, but would it be possible to get something like: If AnalogL/R reach the maximum value, then the button is detected like the first code (L/R being pressed) AND Analog fully pressed?
something like: L/R ANALOG reach FF, then L/R IS pressed (which means it does the "click") and thus, being translated correctly in games.
I need advices here... I am not a coder BUT I know it is possible... Am I wrong? I am trying to know what to do... Can't take that idea out of my head since this morning... :wacko:
 

armac911

New Member
Newbie
Joined
Aug 14, 2014
Messages
4
Trophies
0
Age
42
XP
56
Country
Macedonia, The Former Yugoslav Republic of
Once everything is fine, post your configuration here in order for it to be included in my repository.

Here is the configuration file for Saitek P2500 Rumble Force PC Game Pad (USB)

51MJTVZ95NL.jpg


Code:
[Saitek P2500]
#ANALOG MODE must be enabled for on the controller for it to work.
#
# This controller.ini was made for Saitek P2500 Rumblepad
#######
# By ARMac
#######
 
VID=06A3
PID=FF0C
Polltype=1
DPAD=1
DigitalLR=1
A=5,08
B=5,04
X=5,02
Y=5,01
Z=5,20
L=5,40
R=5,80
S=5,10
Power=0
Left=6,60
Down=6,40
Right=6,20
Up=6,00
RightUp=6,10
DownRight=6,30
DownLeft=6,50
UpLeft=6,70
StickX=1
StickY=2
CStickX=3
CStickY=4
RAnalog=6,F2
LAnalog=6,F1
 
  • Like
Reactions: alzen

Excelsiior

Well-Known Member
OP
Member
Joined
Sep 13, 2009
Messages
274
Trophies
0
Website
www.nanolx.org
XP
328
Country
Germany
Thanks for all your efforts to adding new configurations, added all to my repo. JoostinOnline / FIX94 maybe you could merge them upstream?

Also I added one for those Saitek pxxx-somewhat. That's actually a re-branded one used by many brands, so I made it generic. Works for everything with VID 0F30 and PID 0111.
 
  • Like
Reactions: MassiveRican

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: I always wondered how the autobots could afford to do the stuff they did on the show.... now I... +1