Homebrew 3DS Controller

  • Thread starter CTurt
  • Start date
  • Views 411,809
  • Replies 1,197
  • Likes 104

Lorenzooone

Active Member
Newcomer
Joined
Aug 18, 2015
Messages
27
Trophies
0
XP
174
Country
Italy
EUR O3DS not XL on 10.0.3.28 Firmware, using CIA Build.
Problem: with 0.6 and 0.71 build (Don't know with other ones), Up Slide Pad doesn't get recognized.
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I wanted to ask, the .INI that I downloaded is all one solid wall of text with no formatting or anything. Would I hurt anything if I went through and used the Enter key and added line breaks and spaces to make it a bit easier to read and edit?
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
EUR O3DS not XL on 10.0.3.28 Firmware, using CIA Build.
Problem: with 0.6 and 0.71 build (Don't know with other ones), Up Slide Pad doesn't get recognized.
Is this up as a joystick or as the mouse/a key? (I don't think 0.6 let you set it as a key).

I wanted to ask, the .INI that I downloaded is all one solid wall of text with no formatting or anything. Would I hurt anything if I went through and used the Enter key and added line breaks and spaces to make it a bit easier to read and edit?

Huh, what are you opening it in? Looks fine in notepad, notepad++ and wordpad to me... but I guess I probably messed up the Windows/Unix line endings. It's meant to look like this:

Code:
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: 20
Mouse Speed: 3
vJoy Device: 1

Circle Pad: KEYS
C Stick: MOUSE
D Pad: KEYS
Touch: MOUSE

A: SPACE
B: E
X: CONTROL
Y: SHIFT
L: CLICK
R: RIGHT CLICK
ZL: CONTROL
ZR: SHIFT
Start: ESCAPE
Select: Q
Tap: NONE

Left: A
Right: D
Up: W
Down: S

Pad Left: A
Pad Right: D
Pad Up: W
Pad Down: S

C Stick Left: NONE
C Stick Right: NONE
C Stick Up: NONE
C Stick Down: NONE
 
Last edited by ~Poke~,

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I think I've got everything set up, but I have one last question. I went into XPadder, and started testing buttons on a 360 controller to see which buttons were what for matching things up. The thing is, the two trigger buttons correspond to a Z axis. Is there a way to match this?
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
I think I've got everything set up, but I have one last question. I went into XPadder, and started testing buttons on a 360 controller to see which buttons were what for matching things up. The thing is, the two trigger buttons correspond to a Z axis. Is there a way to match this?
The L and R buttons on the 3ds are just buttons, so not really. You could set the volume slider to one of them if you really wanted. Otherwise, hopefully XPadder lets you use a regular button for them? (I know x360ce allows this).
I take it the 0.7.2 CIA I built does work?
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I haven't actually tried the .CIA yet. I've been really busy with different things lately, and the most I've been doing is just the setting up. I'll try to test it out soon, I've been meaning to see how well it works with PCSX2. Speaking of which, I only just realized that an actual PS2 controller has a pair of shoulder buttons, not triggers, meaning that my concern was a moot point anyways. :)

Anyways, like I said, I'll try the .CIA most likely tomorrow. I downloaded an ISO of FFX and FFX-2 (only because my CD drive is busted and I can't use my actual games. I wanted to try out using the emulator on retail discs to compare reading speeds against having the game on the hard drive, and file sizes make me hate downloading games I already have on-disc.), and was going to see how they run on PC with the resolution turned up. I honestly prefer the 3DS over my actual PC controller's buttons. Why can't Nintendo sell PC controllers? They do such high-quality stuff for their own gear.
 
  • Like
Reactions: ~Poke~

Lorenzooone

Active Member
Newcomer
Joined
Aug 18, 2015
Messages
27
Trophies
0
XP
174
Country
Italy
Tried the cia... Not working, but I don't know if it's the cia or the exe... It reads the space as a character for the port in the exe's .ini... Even modifying that, it still doesn't work.

To answer your previous question: Joystick.
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
Okay, finally got around to testing this. Since Lorenzooone tried your .CIA, I tried out the one from several posts ago. (The one I was referring to as "unofficial", with yours as "official")

Everything seems to work, or at least what I tried. I loaded up a ZC game, and set the controls back to default so that it used ALT and CONTROL. I plugged them into the .INI for 0.7.2 and fired it up, and it all worked. True, the game I tried didn't require all the extras like ZL/ZR/Volume/C-Stick, so I'll need to test it with more than what I did. I'll try a PS2 game next, since it'll need all of the buttons, and I can try the JOY settings instead of keys. (I didn't do that now since the PS2 emulator takes a lot of resources, and I need to keep multiple Firefox tabs open right now. I've got five different college assignments that I need to do by Sunday. ZC was something I tried since it requires next to nothing to run.)
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
Tried the cia... Not working, but I don't know if it's the cia or the exe... It reads the space as a character for the port in the exe's .ini... Even modifying that, it still doesn't work.

To answer your previous question: Joystick.
I don't really understand how either of your issues could be cia specific since it's still the same code. Have you checked if the same happens with the .3dsx? I'm a bit out of my depth here, sorry. (I know there are a few extra services from the *hax that cia wouldn't get, but surely that wouldn't lead to messing up the whitespace when reading a file?)

As for the Joystick, I've noticed that when I map it in x360ce the circle pad/c stick is inverted on the up and down. I'm not really sure where that comes from but could you check if that's what's happening? If so I could add a setting to invert it.

Okay, finally got around to testing this. Since Lorenzooone tried your .CIA, I tried out the one from several posts ago. (The one I was referring to as "unofficial", with yours as "official")

Everything seems to work, or at least what I tried. I loaded up a ZC game, and set the controls back to default so that it used ALT and CONTROL. I plugged them into the .INI for 0.7.2 and fired it up, and it all worked. True, the game I tried didn't require all the extras like ZL/ZR/Volume/C-Stick, so I'll need to test it with more than what I did. I'll try a PS2 game next, since it'll need all of the buttons, and I can try the JOY settings instead of keys. (I didn't do that now since the PS2 emulator takes a lot of resources, and I need to keep multiple Firefox tabs open right now. I've got five different college assignments that I need to do by Sunday. ZC was something I tried since it requires next to nothing to run.)
Huh, cool to know it doesn't freak out about the volume not being sent. Thanks for testing! (It would be nice to have a second test on that recent cia since I don't really get what's happening there, but no rush if you're busy! I probably should go find an exploitable system of my own, or a friend's.)

Good luck on your assignments!
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I'm trying out this on PCSX2 right now. I went into setting up the controls, and it doesn't register SELECT, nor is it registering the Control Pad when it's set to POV. Do I need to put anything special in the individual Control Pad directions when the Pad itself is set up as POV? Everything else seems to have worked, though. Of course, I still need to actually try playing the game before I make any claims. I'm just going off of what the controller config is recognizing.
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
I'm trying out this on PCSX2 right now. I went into setting up the controls, and it doesn't register SELECT, nor is it registering the Control Pad when it's set to POV. Do I need to put anything special in the individual Control Pad directions when the Pad itself is set up as POV? Everything else seems to have worked, though. Of course, I still need to actually try playing the game before I make any claims. I'm just going off of what the controller config is recognizing.
If the D Pad/C Pad/C Stick isn't set to keys, the individual keys are ignored. As for the POV, do you have it enabled in vJoy?
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I double-checked the POV setting. It is set to 1 and is on 4-directions. I still wasn't getting any feedback on the emulator's controller config, so I tried changing the .INI so it said POV1 instead of just POV. The emulator is now recognizing the Control Pad, but is registering it as 8,6,4,2 instead of as a Control Pad. It's registering it as the four directional keys on the keypad. Functionally, I suppose this would work, but technically it isn't working properly.
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
I double-checked the POV setting. It is set to 1 and is on 4-directions. I still wasn't getting any feedback on the emulator's controller config, so I tried changing the .INI so it said POV1 instead of just POV. The emulator is now recognizing the Control Pad, but is registering it as 8,6,4,2 instead of as a Control Pad. It's registering it as the four directional keys on the keypad. Functionally, I suppose this would work, but technically it isn't working properly.
What does it look like on the vJoy monitor, if anything? POV1 isn't a valid setting, so it's probably fallen back to using keys. I've noticed that if I have numlock on, the arrows are interpreted as numbers instead (which is weird, because the program specifically sends the arrow keys, which are separate from the numpad keys?) So yeah. See if it shows up in the vJoy monitor when set to POV. If so, maybe PCSX2 wants the other kind of POV?
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
Okay, I changed the POV settings on vJoyConfig to continuous, and swapped back to POV on the .INI, so now the Control Pad seems to be working correctly, according to vJoyMonitor. However, while the .INI is set so that the Y Button is Joy3, vJoyMonitor seems to read it as "j" instead. This seems odd because it was working correctly in PCSX2. Also, changing the POV settings to continuous caused PCSX2 to register the Control Pad correctly!

Everything seems to be working, although I still haven't tested the VOLUME control. This is partially because I don't see a way that it would be practical in-game to use, or what I would use it as, and partially because I don't see a volume setting on the .INI that I'm using. The only real problem in getting this working is that vJoyMonitor registers Joy3 as "j", while actual programs that use a controller appear to register it properly. I don't know why it does that.
 

~Poke~

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
260
Trophies
0
XP
144
Country
Okay, I changed the POV settings on vJoyConfig to continuous, and swapped back to POV on the .INI, so now the Control Pad seems to be working correctly, according to vJoyMonitor. However, while the .INI is set so that the Y Button is Joy3, vJoyMonitor seems to read it as "j" instead. This seems odd because it was working correctly in PCSX2. Also, changing the POV settings to continuous caused PCSX2 to register the Control Pad correctly!

Everything seems to be working, although I still haven't tested the VOLUME control. This is partially because I don't see a way that it would be practical in-game to use, or what I would use it as, and partially because I don't see a volume setting on the .INI that I'm using. The only real problem in getting this working is that vJoyMonitor registers Joy3 as "j", while actual programs that use a controller appear to register it properly. I don't know why it does that.
The settings are case sensitive, though idk how you're getting it to work as both. For me JOY3 works properly as the button, Joy3 types a j and joy3 types a *. So make sure it's all caps! (This might be a simple thing to fix though, so maybe I'll look into that later?)

Volume doesn't have a setting yet. It controls the Z axis. I have a few ideas of other things it could do - perhaps it could press a key at min or max? Perhaps it could press numbers 1 through 9 to select items in minecraft/other games with hotbars? Or even control the volume of the PC. But nothing yet, it's just the Z axis, so no need for config.
(It'll only get sent if you're using the 0.7.2 3dsx or cia that I built though, the older one built by daxtsu doesn't include it!)
 

Kurt91

Well-Known Member
Member
Joined
Sep 9, 2012
Messages
589
Trophies
1
Age
33
Location
Newport, WA
XP
2,234
Country
United States
I double-checked, it was set to JOY3, all caps. No idea why it's registering as "j" on the monitor program, but I cleared and re-typed it again to be sure. Haven't tried it yet, I've got college work to take care of first.
 
  • Like
Reactions: ~Poke~

Cydget

Well-Known Member
Member
Joined
Oct 1, 2015
Messages
493
Trophies
0
Age
27
XP
260
Country
United States
So, back when hax 2.0/2.1 was out I had it working fine. I didnt use it for a long time, and now Im on hax 2.5. I decided to update it on both my computer and 3ds, but it doesnt seem to connect. My config file is at the root of my sd card, and I have the ip set to the only Ip that appears in when I open 3DSController.exe I have them both set to port 8890. It doesnt seem to connect at all, so I dont think it is a problem with vjoy. If any of you can help me out I would be thankful.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Ending to the fallout series was lame could've gave us a bit more