Homebrew 3DS Controller

  • Thread starter CTurt
  • Start date
  • Views 416,098
  • Replies 1,200
  • Likes 104

AndreAR

Well-Known Member
Newcomer
Joined
Dec 2, 2020
Messages
98
Trophies
0
Age
24
XP
873
Country
Guatemala
When I use either the CIA file or the 3DSX It appears the black screen and I can use the L+R+X combo but it doesn't work, I tried in 2 consoles (a N2DS XL and a O3DSXL) and didn't worked in both
 
Last edited by AndreAR,

AndreAR

Well-Known Member
Newcomer
Joined
Dec 2, 2020
Messages
98
Trophies
0
Age
24
XP
873
Country
Guatemala
When I use either the CIA file or the 3DSX It appears the black screen and I can use the L+R+X combo but it doesn't work, I tried in 2 consoles (a N2DS XL and a O3DSXL) and didn't worked in both
I tried in another PC but it worked, but I want to install it in my computer
 

RaMpEdUp98

New Member
Newbie
Joined
Jun 16, 2022
Messages
3
Trophies
0
Age
21
Location
Tennessee
XP
22
Country
United States
Still getting DLL errors

Edit: I did not send this, because I wasnt registered for GBAtemp when I typed this out and deleted it before I did register so why it sent at all is a mystery
 

Marvs216

New Member
Newbie
Joined
Aug 5, 2022
Messages
1
Trophies
0
Age
18
Location
Somewhere down the road
XP
40
Country
Philippines
I know this project is old and probably abandoned, but I hope someone will help me with this.

So I'm using the 0.7.2 cia version and got everything installed and running. I've configured my buttons to be joypad buttons (JOY1, JOY2, etc.) and they've worked, however it also presses keyboard buttons whenever I use them. Its kinda annoying to use on emulators like Dolphin because whenever I press Start it also presses Esc which makes Dolphin pop-up and ask me whether to end the emulation or not. I used a keyboard checker to see which buttons are pressing which keys on my keyboard:

A: Space
B: Enter
X: Page Down
Y: Page Up
L: Ctrl
R: Alt
ZL: Right Click
ZR: Left Click
Start: Esc
Select: Tab
D Pad and Circle Pad: Arrow Keys

As far as I know they shouldn't be inputting those keys since they are configured to be joypad buttons.

Here are the contents of my .ini file:
---
Default port is 8889, if you change this, you must change it in the 3DS's 3DSController.ini as well,
Throttle controls the delay between checking for new packets (in milliseconds), a high number will have slightly more lag between pressing a button on the 3DS and receiving it on the PC, however will make the application use less CPU. In my experience, 20 is a reasonable throttling amount,
Mouse Speed controls how fast the Circle Pad or Touch Screen moves the mouse. If set to 0 and using the Touch Screen, it will set to the absolute position, rather than moving relatively to last position,
vJoy Device chooses which device to connect to. Set this to 2 in a second instance of 3DSController to use a second 3DS at the same time, perhaps for multiplayer.


Circle Pad, C Stick and Touch can be MOUSE, JOYSTICK1, or JOYSTICK2.
JOYSTICK1 uses X and Y. JOYSTICK2 uses Rx and Ry. These are axes 0, 1, 3 and 4 respectively, leaving 2 and 5 unused.
KEYS will enable Pad directions (eg. Pad Left, C Stick Right) to map to regular keys (no vJoy necessary).
D Pad can be KEYS or POV. POV will automatically choose a continuous or 4 directional POV hat depending on what is set in your vJoy Config. KEYS will allow Left, Right and etc. to be buttons as previously.


Buttons can be a letter for a keyboard key (like Q, W, E, R, T, or Y), a special keyboard key (like SPACE, CLICK, RIGHT CLICK, ENTER, BACKSPACE, SHIFT, TAB, LEFT, RIGHT, UP, DOWN, PAGE UP, PAGE DOWN, WINDOWS, ESCAPE, CONTROL or ALT), or a joypad button (JOY1, JOY2, JOY3, to JOY16).
If you want to use JOY9 through JOY16 you need to reconfigure vJoy. Search for vJoy Config in your start menu and set buttons to 16.

Alternatively, you can disable any key by binding it to NONE.


Make sure to use a single space, not a tab for seperating settings,




Port: 8889
Throttle: 10
Mouse Speed: 0
vJoy Device: 1

Circle Pad: JOYSTICK1
C Stick: KEYS
D Pad: KEYS
Touch: JOYSTICK2

A: JOY1
B: JOY2
X: JOY3
Y: JOY4
L: JOY5
R: JOY6
ZL: JOY7
ZR: JOY8
Start: JOY9
Select: JOY10

Left: JOY11
Right: JOY12
Up: JOY13
Down: JOY14

Pad Left: 1
Pad Right: 2
Pad Up: 3
Pad Down: 4

C Stick Left: 5
C Stick Right: 6
C Stick Up: 7
C Stick Down: 8
---
Is there anything I should do so that it would input joypad buttons while preventing them from inputting keyboard keys?
 

Universal_Ramen

New Member
Newbie
Joined
Mar 25, 2023
Messages
1
Trophies
0
Age
24
XP
13
Country
Australia
I know this thread is completely dead but I need some help. I've followed all the troubleshooting steps, my PC and 3DS are both on the same port, the IP address is right and it boots up to the black screen but nothing works.
 

SwirlyStone5877

Member
Newcomer
Joined
Dec 7, 2022
Messages
17
Trophies
0
XP
116
Country
United States
I know this thread is completely dead, but I need some help. I've followed all the troubleshooting steps, my PC and 3DS are both on the same port, the IP address is right, and it boots up to the black screen, but nothing works.
Odd... Check 3DScontroller.ini and see if the settings are correct. You can edit them as you wish. However, it is wise that you read the warning at the beginning of the file, so you don't mess anything up.
Post automatically merged:

I know this project is old and probably abandoned, but I hope someone will help me with this.

So I'm using the 0.7.2 cia version and got everything installed and running. I've configured my buttons to be joypad buttons (JOY1, JOY2, etc.) and they've worked, however it also presses keyboard buttons whenever I use them. Its kinda annoying to use on emulators like Dolphin because whenever I press Start it also presses Esc which makes Dolphin pop-up and ask me whether to end the emulation or not. I used a keyboard checker to see which buttons are pressing which keys on my keyboard:

A: Space
B: Enter
X: Page Down
Y: Page Up
L: Ctrl
R: Alt
ZL: Right Click
ZR: Left Click
Start: Esc
Select: Tab
D Pad and Circle Pad: Arrow Keys

As far as I know they shouldn't be inputting those keys since they are configured to be joypad buttons.

Here are the contents of my .ini file:
---
Default port is 8889, if you change this, you must change it in the 3DS's 3DSController.ini as well,
Throttle controls the delay between checking for new packets (in milliseconds), a high number will have slightly more lag between pressing a button on the 3DS and receiving it on the PC, however will make the application use less CPU. In my experience, 20 is a reasonable throttling amount,
Mouse Speed controls how fast the Circle Pad or Touch Screen moves the mouse. If set to 0 and using the Touch Screen, it will set to the absolute position, rather than moving relatively to last position,
vJoy Device chooses which device to connect to. Set this to 2 in a second instance of 3DSController to use a second 3DS at the same time, perhaps for multiplayer.


Circle Pad, C Stick and Touch can be MOUSE, JOYSTICK1, or JOYSTICK2.
JOYSTICK1 uses X and Y. JOYSTICK2 uses Rx and Ry. These are axes 0, 1, 3 and 4 respectively, leaving 2 and 5 unused.
KEYS will enable Pad directions (eg. Pad Left, C Stick Right) to map to regular keys (no vJoy necessary).
D Pad can be KEYS or POV. POV will automatically choose a continuous or 4 directional POV hat depending on what is set in your vJoy Config. KEYS will allow Left, Right and etc. to be buttons as previously.


Buttons can be a letter for a keyboard key (like Q, W, E, R, T, or Y), a special keyboard key (like SPACE, CLICK, RIGHT CLICK, ENTER, BACKSPACE, SHIFT, TAB, LEFT, RIGHT, UP, DOWN, PAGE UP, PAGE DOWN, WINDOWS, ESCAPE, CONTROL or ALT), or a joypad button (JOY1, JOY2, JOY3, to JOY16).
If you want to use JOY9 through JOY16 you need to reconfigure vJoy. Search for vJoy Config in your start menu and set buttons to 16.

Alternatively, you can disable any key by binding it to NONE.


Make sure to use a single space, not a tab for seperating settings,




Port: 8889
Throttle: 10
Mouse Speed: 0
vJoy Device: 1

Circle Pad: JOYSTICK1
C Stick: KEYS
D Pad: KEYS
Touch: JOYSTICK2

A: JOY1
B: JOY2
X: JOY3
Y: JOY4
L: JOY5
R: JOY6
ZL: JOY7
ZR: JOY8
Start: JOY9
Select: JOY10

Left: JOY11
Right: JOY12
Up: JOY13
Down: JOY14

Pad Left: 1
Pad Right: 2
Pad Up: 3
Pad Down: 4

C Stick Left: 5
C Stick Right: 6
C Stick Up: 7
C Stick Down: 8
---
Is there anything I should do so that it would input joypad buttons while preventing them from inputting keyboard keys?
This is odd... Maybe use keyboard keys, rather than joy1, joy2, etc. This should solve the problem and not have start press esc. If you have no choice, you could edit dolphin to where esc doesn't do anything.
 

PikaJade

New Member
Newbie
Joined
May 26, 2023
Messages
1
Trophies
0
Age
124
XP
13
Country
United States
This thread still seems to be checked occasionally, so I might as well ask here:

I'm using this with a New 3DS XL. The program insists that vJoy has less than 16 buttons registered, when it clearly has all 16, and the C-Stick and the Z-triggers don't do anything. I currently have vJoy v2.1.9, when the readme recommends an earlier version - is this why it's messing up?
 

SwirlyStone5877

Member
Newcomer
Joined
Dec 7, 2022
Messages
17
Trophies
0
XP
116
Country
United States
This thread still seems to be checked occasionally, so I might as well ask here:
Go ahead and ask.
I'm using this with a New 3DS XL. The program insists that vJoy has less than 16 buttons registered, when it clearly has all 16, and the C-Stick and the Z-triggers don't do anything.
That is quite odd...
I currently have vJoy v2.1.9, when the readme recommends an earlier version - is this why it's messing up?
Yes, this may be why it is messing up. Although, I can't really tell, because I've only had a 2DS before (the one that looks like a doorstop).
 

Fijxu

Member
Newcomer
Joined
Jul 28, 2023
Messages
5
Trophies
0
XP
31
Country
Antarctica
Hello, i just updated the source code of 3DSController to modern libctru since the old source code was too old to compile with the latest versions of libctru. It works without problems at least on Linux using the latest version of Python3 (3.11) with uinput...

There is also .cia and .3dsx files in the 3DS folder. I only tested the 3dsx one, idk about the .cia but it should works anyways.

Mainly updated because I want to add gyro support to it becuase of Zelda xD. idk how I will do that but i will figure it out.

(Oh well, I can't post the repo link since I'm too new in this forum... Anyways, if some search engine indexes it search for "git.zzls.xyz 3dscontroller-ng", I would post a base64 with the link on it but it seems to be supa illegal D: )
 
  • Like
Reactions: signer-ink-beast

Fijxu

Member
Newcomer
Joined
Jul 28, 2023
Messages
5
Trophies
0
XP
31
Country
Antarctica
So... I added Accelerometer and Gyroscope support (THEY DON'T WORK PROPERLY).

I changed the Linux python script to use the python-evdev module instead of python-uinput because python-uinput is deprecated. With python-evdev I was able to assign 2 devices, one for the gamepad (Keys) and one for the Gyroscope and Accelerometer (emulating what the current drivers of PlayStation DualShock from linux does, they create different devices). But for some reason emulators simply don't catch the device created to catch gyro and accel movements...

I guess I will need to go straight to C so I can make use of current drivers examples from the Linux kernel.

>What about Windows? Did you tested it?
No, I don't use Windows so I don't really care about it

>If you can make gyro and accel work on Linux, you will be porting this to Windows?
I don't think so.

Edit: Now that I think about it, 3DSController was made in the era where CemuHook DSU didn't exist. I could make use of that protocol to implement it on the 3DS and make a DSU Server that sends all the necessary data to the DSU Client (Emulators mostly)
Post automatically merged:

By the way, this is the repository: https://git.zzls.xyz/Fijxu/3dscontroller-ng/
 
Last edited by Fijxu,

CirclePadPro

Member
Newcomer
Joined
Oct 5, 2023
Messages
6
Trophies
0
XP
30
Country
United States
How would you expect that to work? If theres nothing there on the console about ccp. then how would you program something to nothing.
I don't understand what you mean? The CCP has documents on how it works so it's more how to make it work with a homebrew app.

Unless I am misunderstanding you...
 

satachan23

Member
Newcomer
Joined
Apr 28, 2024
Messages
11
Trophies
0
Age
26
Location
Thailand
Website
www.youtube.com
XP
31
Country
Thailand
Does anyone know how to properly set up the touchscreen so that it can actually click when you tap on the screen?
I tried mapping the ini with some random letter but tapping the 3dsxl screen doesn't actually do anything.
I just want to use the 3dsxl as a controller for DESMUME so I can play relatively similar to the original NDS
 

smileyhead

I like cute stuff.
Member
Joined
Aug 31, 2015
Messages
4,808
Trophies
3
Age
23
Location
Budakeszi, Hungary
Website
sites.google.com
XP
10,631
Country
Hungary
Does anyone know how to properly set up the touchscreen so that it can actually click when you tap on the screen?
I tried mapping the ini with some random letter but tapping the 3dsxl screen doesn't actually do anything.
I just want to use the 3dsxl as a controller for DESMUME so I can play relatively similar to the original NDS
Sorry, this isn't an answer to your question, but is there a reason you're not using nds-bootstrap/TWiLightMenu to run DS games on your console natively?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Minox @ Minox:
    No idea what any of those things you mention are
    +1
  • K3Nv2 @ K3Nv2:
    Cholesterol and Triglycerides? Basically a way they measure fatty cells in your blood
  • AncientBoi @ AncientBoi:
    Cholesterol is sorta high, according to my doc
    +1
  • K3Nv2 @ K3Nv2:
    I've been taking fiber pills, eating more grapes, switched to wheat bread in hopes to lower it
    +1
  • BigOnYa @ BigOnYa:
    I like wheat bread, I even like the chunky wheat bread with pieces of whole grain in it.
  • K3Nv2 @ K3Nv2:
    Been getting this honey wheat bread from aldis pretty decent not very sweet to out do it
  • K3Nv2 @ K3Nv2:
    Me making any food at home is an improvement to how I use to be
    +1
  • BigOnYa @ BigOnYa:
    I have an bread machine and use it alot, better than breads you buy, but don't last as long, cause no bs preservatives
  • K3Nv2 @ K3Nv2:
    I got compliments about my weight loss and thought well guess I can pig out again now I'm the piggy
  • BigOnYa @ BigOnYa:
    My biggest prob is alcohol, definitely is fattening
  • K3Nv2 @ K3Nv2:
    I know when to stop at least honestly don't get those that go and go with food
  • BigOnYa @ BigOnYa:
    Or those that order 2 big macs , large fry, ice cream sundie, then a diet coke
  • K3Nv2 @ K3Nv2:
    I might get downing two big macs but nah that's it
  • BigOnYa @ BigOnYa:
    Ok that will be $15.99, cash or charge?
  • K3Nv2 @ K3Nv2:
    My go to orders usually a mcdouble and a mcchicken and I'm happy rarely mess with fries
  • K3Nv2 @ K3Nv2:
    Pro tip ask for that clowns jizzmac sauce on your mcdouble
    +1
  • BigOnYa @ BigOnYa:
    Do they charge extra when you add sauce,etc? I know burger king used to not, but don't know nowadays
  • K3Nv2 @ K3Nv2:
    They may squrit it for free if you ask nice
    +1
  • K3Nv2 @ K3Nv2:
    Last time I got bk it was 35c per sauce fuck you king of my nutsack
    +1
  • K3Nv2 @ K3Nv2:
    I'll buy a bottle of baby rays BBQ for $2 and add it from home out of spite
    +1
  • BigOnYa @ BigOnYa:
    I like baby rays, my favorite is KC masterpiece tho. Figured all you could buy is that there.
  • K3Nv2 @ K3Nv2:
    The metro doesn't discriminate good sauce
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Baby Rays isn't that what killed the crocodile hunter?
  • Psionic Roshambo @ Psionic Roshambo:
    If only he had done an endorsement for them....
  • Psionic Roshambo @ Psionic Roshambo:
    Oy mate don't let a bad bbq sauce kill your party! Baby Rays are killing it!! The flavor hits you right in the chest!
    Psionic Roshambo @ Psionic Roshambo: Oy mate don't let a bad bbq sauce kill your party! Baby Rays are killing it!! The flavor hits...