Hacking Nintendont Controller-Configurations

pedro702

Well-Known Member
Member
Joined
Mar 3, 2014
Messages
12,764
Trophies
2
Age
34
XP
8,890
Country
Portugal
Is there any way to reduce stick sensitivity for the WiiU Gamepad? It's way higher than on a GC controller makes it really frustrating to play.
I also don't seem to have a controller.ini file to tweak, I only have a controller folder with multiple obscure .ini files in it.
I've been looking around the internet for hours now and can't seem to find anything helpful, so any help would be greatly appreciated!
only hid controllers have ini files, wiiu gamepad and other bt controllers are hard-coded into nintendont you would need to change it manually and then recompile it.
 

purplegreendave

Active Member
Newcomer
Joined
Oct 6, 2014
Messages
39
Trophies
0
Age
33
XP
227
Country
Canada
Having issues with Dualsense controller. Most frustrating part is that it almost works.

Injected a game with UWUVCI. Used a fresh SD card (no leftover files from previously using Teconmoon). Allowed UWUVCI to pull nintendont files and create a config.
Downloaded controller_ps5.ini from /nintendont/controllerconfigs on Github. Renamed to controller.ini and placed in the root of my SD.

Launch the game with the WiiMote, choose not to use Gamepad, choose TV Only.
Once I get to the initial game screen (choose progressive mode) and confirm it has launched, I plug my controller in on the front USB.

I get functionality from the face buttons, sticks and d-pad. R1 Tracks to Z.
This is where it gets odd:
L2 works for the left trigger as far as I can tell.
R2 works for the right trigger, can register the difference between a half press and a full press (FLUDD). But it ALSO registers as a Left Trigger. So any time I Hit R2 on my Dualsense (doesn't matter if it's a full or half press), the game thinks I'm pressing the L AND R Trigger simultaneously.

I tried plugging it into HIDTest on Wii U HBC so I could fix the config file myself but got no output.
Plugged it into my PC and ran HIDTest-0.2.jar but the output was a constant stream of info in the terminal that was too fast to read.

Any ideas?
 

purplegreendave

Active Member
Newcomer
Joined
Oct 6, 2014
Messages
39
Trophies
0
Age
33
XP
227
Country
Canada
Ok I'm double posting but I've made a bit of progress so I though a second post would be ok.


Shoulder Buttons:
Pressing R2 does send an R Trigger command, and it can tell the difference between a full press and a half press. Issue is that for some reason it also sends an L trigger command which makes it useless.
I noticed that the inputs for L and R are both at "byte" 9 (counting starts at 0, so byte 9 is the 10th entry)
L=9,04 R=9,08

When compared to the DS4 config, they're at separate bytes.
L=8,F0 R=9,F0

So I figured that's why R2 does both - it sees the value increase by 04 and 08. Pressing L2 only increases it by 04, so that one works without interfering.

I deleted both lines just to see what would happen and tested a game. Now they didn’t interfere with each other anymore, but could ONLY register a half press. Obviously we want to be able to send a full press when needed.

I found this other page on github; most of it's gibberish to me, but he has a tool that runs from a Chromium browser:
https://nondebug.github.io/dualsense/dualsense-explorer.html

With that I could look at what the controller was outputting when a button was pressed. This could also be done with HIDTest, (downloadable from the HIDtoVPAD Network Client Github page). With HIDTest, it's very hard to read the output because the gyroscope and accelerometer are constantly sending tiny amounts of data and the corresponding bytes are changing so fast it gives you a headache to look at. With this online tool it was easier on my eyes to see what was happening.

I noticed from comparing the config.ini and the online tool that the half presses are registered at a different byte to the full presses:
LAnalog=5 RAnalog=6

I added the value of a full press at those addresses back in place of the lines I had deleted earlier.
L=5,F
F
R=6,FF

Checked with Mario Sunshine and I had proper half and full press of R2 as well as full press of L2.

In hindsight, I might have been able to figure that out by comparing with the DS4v2 ini, but I needed the tool's visual aid to get me there.

Face Buttons:
The Face buttons make sense if you're comparing to the Wii U Gamepad; A=Circle, B=X etc.
Gamecube has a wonky layout, but it's easy enough to swap those 4 around.

Old:
A=8,40 (Circle) B=8,20 (X) X=8,80 (Triangle) Y=8,10 (Square)


New:
A=8,20 (X) B=8,10 (Square) X=8,40 (Circle) Y=8,80 (Triangle)


Rumble
Rumble might be impossible, but I wanted to try.
PS2 has several entries in its config relating to Rumble: https://github.com/FIX94/Nintendont/blob/master/controllerconfigs/controller_ps2.ini
I was looking for what those entries meant, when I came across someone trying to do the same with the Stadia controller: https://github.com/FIX94/Nintendont/issues/1080

Going off of that, I went back to my browser with nondebug's tool open. I don't know what wizardry he has going on, but when you press a trigger the controller starts to vibrate. I checked the output panel and noticed that the first line went from:
02 FF F7 00 00
To
02 FF F7 FF FF

So I spat out the code:
Rumble=1 RumbleType=0 RumbleDataLen=05 RumbleDataOn=0x02,0xff,0xf7,0xff,0xff RumbleDataOff=0x02,0xff,0xf7,0x00,0x00 RumbleTransferLen=05 RumbleTransfers=1

So far it's not working, I also tried RumbleType=1, but I'll have another go later.

I've attached my progress. I can't upload an ini so I changed the extension to txt, just change it back to test.
 

Attachments

  • controller_ps5_new.txt
    467 bytes · Views: 45

Deleted member 466238

Well-Known Member
Member
Joined
Oct 2, 2018
Messages
169
Trophies
0
XP
1,143
I'm reposting this .ini file here as well just in case it helps someone:

Hi, I made a controller.ini file for a third party GameCube Controller adapter that I bought (Model GL-S025). I hope it helps to someone who has the exact same adapter (or a similar one with the same vendor id). The slider needs to be on PC for it to work with Nintendont.
 

Attachments

  • 0079_1846.zip
    377 bytes · Views: 36
  • 20230802_143622.jpg
    20230802_143622.jpg
    360.1 KB · Views: 31
  • a1d9349c-dc77-4c7b-9780-dd8949a2e3af.jpeg
    a1d9349c-dc77-4c7b-9780-dd8949a2e3af.jpeg
    42.5 KB · Views: 31

MikeBeast12

Member
Newcomer
Joined
Sep 4, 2018
Messages
23
Trophies
0
Age
41
XP
699
Country
United States
Does anyone test the Thrustmaster Dual Trigger gamepads yet? It might be intended for Nintendont. Might worth to test them if not. :)
 

Attachments

  • THRUSTMASTER-DUAL-TRIGGER-3IN1-1440-0276830-752870363.jpg
    THRUSTMASTER-DUAL-TRIGGER-3IN1-1440-0276830-752870363.jpg
    103.9 KB · Views: 35

f4ts0

Member
Newcomer
Joined
Jun 12, 2024
Messages
5
Trophies
0
Age
40
XP
20
Country
Belgium
Hi, I need few hints/help

I am using Nintendont on Wii U.

I have pretty old ugly ps2 controller clone, it works, but it is really bad :D

I have 8bitdo pro 2 and 8bit do ultimate c wired.

I found PID and VID of my controllers.

I took generic template for 8bitdo snes from Nintendont GitHub and modified pid, vid and saved as VID_PID.ini

THen, on the root of my sd card I have created controllers folder and placed 2 files inside (for both 8bit do's)

They are not working.

First question : can those 2 controllers work at all?

Second question: when I do not have controller folder at al, my ps2 controller clone works. I found it actually on GitHub by PID and VID (0079_0006 - generic USB controller). What is purpose of ini files, if my ps2 controller works without controller folder/config? Is it somehow embedded in code?

Third question - I noticed some mentioning about using Wii U gamepad with Nintendont. I do have Nintendont exposed as channel to my Wii U home menu, but when I start Nintendont, it does not offer me to use Wii U gamepad as like some posts here suggest? Can I use Wii U gamepad at all?

If any help, here are my 8 bit do's ini files

Thanks!

[8Bitdo ultimate C wired]
VID=3017
PID=2DC8
Polltype=1
DPAD=1
DigitalLR=0
A=5,40
B=5,20
X=5,80
Y=5,10
CStickY=4
CStickX=3
StickY=2
StickX=1
S=6,20
Up=5,00
Right=5,02
Left=5,06
Down=5,04
L=6,04
R=6,08
Z=6,02
Power=6,10
MultiIn=0
RightUp=5,01
DownRight=5,03
DownLeft=5,05
UpLeft=5,07
LAnalog=8
RAnalog=9

[8Bitdopro2]
VID=054C
PID=05C4
Polltype=1
DPAD=1
DigitalLR=0
A=0,01
B=0,02
X=0,08
Y=0,10
CStickY=6
CStickX=5
StickY=4
StickX=3
S=1,08
Up=2,00
Right=2,02
Left=2,06
Down=2,04
L=1,01
R=1,02
Z=0,80
Power=1,10
MultiIn=0
RightUp=2,01
DownRight=2,03
DownLeft=2,05
UpLeft=2,07
LAnalog=10,01
RAnalog=10,02
 

f4ts0

Member
Newcomer
Joined
Jun 12, 2024
Messages
5
Trophies
0
Age
40
XP
20
Country
Belgium
to answer myself, Ulitmate C wired is not recognized by HID test, 8bitdo pro 2 is, I can see pid and vid, but no buttons are visible, not reacting to any type of input - ASDX modes are tried.

too bad, those are pretty popular controllers
 

rafael_rf

New Member
Newbie
Joined
Jun 25, 2024
Messages
1
Trophies
0
Age
31
XP
2
Country
Brazil
Poderia me ajudar no, ao jogar com controle USB genérico de PC, ele funciona, mas o analógico direito que corresponde ao C do gamecube está invertido em todos os jogos que testei. Quando coloco para BAIXO ele quer dizer ESQUERDA, quando coloco para CIMA ele quer dizer DIREITA e vice e versa.
Como posso fazer para saber qual arquivo devo estar modificando?
 

bamjonut7

Member
Newcomer
Joined
Nov 29, 2022
Messages
11
Trophies
0
Age
50
XP
176
Country
United Kingdom
Hi, hope someone can help here I have a usb controller I am trying to setup it's made by ZDtech and is model ZD-N108
It's basically a clone of xbox360 with some additional features, turbo etc.

It has multiple modes of operation i.e. Xinput, Directinput and android mode
Doesn't get recognised at all in Xinput or android mode
Seems to be compatible in Directinput mode

here is some of the output from HID test

HIDVersion:40001
VID:0079
PID:0122
HIDVers:3
IntClass:0
SubIntClass:0
bEndpointAddress:81
wMaxPacketSize :64

no inputs

00 00 0F 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00

A-button
04 00 0F 80 80 80 80 00 00 00 00 00 FF 00 00 00 00 00 00

B-button
02 00 0F 80 80 80 80 00 00 00 00 FF 00 00 00 00 00 00 00


My question is this, as it changes two sets of values for any inputs is it compatible and if so how do I format the controller.ini file?
Or is this controller type dead in the water?

Thanks
Post automatically merged:

Okay so I answered my own question about the changing two values as I found a post by akadiddy which basically had the same outputs for his sample controller which was an xbox on an adapter so other than the power button setting everything else was the same however....

It does not work when loading up HIDtest with the controller.ini in the root of the sdcard it says


Entry:"VID" not found!

Also says further down

The configuration is not for this device!
Config:
VID:0000 PID:0122

So it must be reading the fact that I have a config as it's showing the correct PID and I do have the VID=0079 entry so why does it not read it?

Here is my final config file


[ZDNet]

VID=0079
PID=0122

Polltype=1
DPAD=1

DigitalLR=0

A=00,04
B=00,02
X=00,08
Y=00,01
Z=00,20
L=00,40
R=00,80

# power button mapped to Home button
Power=01,10

# start mapped to start button
S=01,02

# D-Pad settings
Left=02,06
Down=02,04
Right=02,02
Up=02,00
RightUp=02,01
DownRight=02,03
DownLeft=02,05
UpLeft=02,07

# Stick = left analogue stick
StickX=03
StickY=04

# CStick = right analogue stick
CStickX=05
CStickY=06

# Analogue triggers - ensure DigitalLR=0
LAnalog=11
RAnalog=12



Anyone else have this issue?
Post automatically merged:

Solved that issue

Didn't like the VID entry to be the first line in the config file
The config I just posted above I had amended it to have the controller name in the top line and soon as I did that it worked
Post automatically merged:

Also worth noting that as well as it not reading the first line of my config file it also didn't read the last line either so my right trigger did not work.

Here is my final config file tested and working now for the

www.izdtech.com
ZD-N108
Must be in Dinput mode (hold the HOME button till lights change to the two outermost of the four leds)

[ZDNet]

VID=0079
PID=0122

Polltype=1
DPAD=1

DigitalLR=0

MultiIn=0

A=00,04
B=00,02
X=00,08
Y=00,01
Z=00,20
L=00,40
R=00,80

# power button mapped to Home button
Power=01,10

# start mapped to start button
S=01,02

# D-Pad settings
Left=02,06
Down=02,04
Right=02,02
Up=02,00
RightUp=02,01
DownRight=02,03
DownLeft=02,05
UpLeft=02,07

# Stick = left analogue stick
StickX=03
StickY=04

# CStick = right analogue stick
CStickX=05
CStickY=06

# Analogue triggers - ensure DigitalLR=0
LAnalog=11
RAnalog=12

[end]
Post automatically merged:

Okay FINALLY

In case anyone is actually interested in using one of these controllers for this purpose in 2024 then here is the final final config file.

I had to change the power button function as I forgot that the controller itself uses it to switch it's config.
A long press swaps main modes between Xinput, Dinput and Android mode
Once it's in Dinput mode (the one this config works with) a short press switches the D-pad and left analog stick over so if using it as a power/reset button then everytime you reset you switch the mode of the sticks/D-pad which is essentially useless.

It's got four mode indicator leds on the controller
needs to have the first and third led on to be in normal Dinput mode and the first and fourth leds for stick/D-pad swap mode.

Now mapped the power button to the combined press of "start" and "back" same as a ps3 controller uses.


[ZDNet]

VID=0079
PID=0122

Polltype=1
DPAD=1

DigitalLR=0

MultiIn=0

A=00,04
B=00,02
X=00,08
Y=00,01
Z=00,20
L=00,40
R=00,80

# power button mapped to start/back buttons pressed together
Power=01,03

# start mapped to start button
S=01,02

# D-Pad settings
Left=02,06
Down=02,04
Right=02,02
Up=02,00
RightUp=02,01
DownRight=02,03
DownLeft=02,05
UpLeft=02,07

# Stick = left analogue stick
StickX=03
StickY=04

# CStick = right analogue stick
CStickX=05
CStickY=06

# Analogue triggers - ensure DigitalLR=0
LAnalog=11
RAnalog=12

[end]


Hope this is of use to someone as it's now working 100% perfectly, playing wind waker right now without having to resort to the knackered old ps3 sixaxxis stick which was the only other controller I owned that was supported.
 
Last edited by bamjonut7,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    DexterYeen @ DexterYeen: that sucks man