Homebrew 3DS Controller

  • Thread starter Thread starter CTurt
  • Start date Start date
  • Views Views 454,629
  • Replies Replies 1,201
  • Likes Likes 104
Anyone? Trying to get the circle pad to work as a joystick, but no luck.

try this:

trancepara said:
I got it working in 2.0.5!

1.) Download the vjoy SDK: http://vjoystick.sourceforge.net/si...egorised/11-redirect-vjoy2sdk?task=weblink.go

2.) In the archive, there is a lib folder. Take the vJoyInterface.dll inside that folder and replace the one bundled with 3DS Controller.

It should work. To test it, get 3DS Controller contected. Then type "Control Panel" in Cortana. Search for "USB" and then click on "Setup USB game controller" and then properties. The X/Y axis should know respond. :) Have fun!
 
hmm.. I got every button to act as a joypad button (besides the new 3ds buttons, which I believe aren't supported), including the circle pad as the joystick. But for some reason, it will not read my d-pad? Is there something specific I need to map it to?
 
Is it possible to use both the Circle Pad AND the Touch Screen as (individual) joysticks? I have the circle pad working fine but the screen does nothing when it's set to joystick.

For people wanting steam support, you can use a program called x360ce to make it act as an xbox360 controller, which a lot of things support. Of course it's not great with only one joystick, though giving up abxy could work depending on what you want to play.
It's probably a better idea to map controls directly in the game if possible, but I've found that Life is Strange (and possibly other Unreal based games) doesn't allow this.
 
I've been trying everything to make this work on version 0.5... installing vjoy, changing the port from 8889 to 4001 to 5000... nothing worked. All I got was the normal black screen but none of my button inputs registered on my computer...

Then I realized I have to keep the 3DSController.exe running while the 3DS application is running.

It's stupid, I know, but just in case anyone else was having trouble, keep the .exe file running when you open up the homebrew!
 
  • Like
Reactions: ~Poke~ and CTurt
Version 0.6 released. Get it from here as always.

Changelog:

3DS Client:
  • Backlight disabled when not in use (less battery consumption),
  • New 3DS buttons and C Stick support,
PC Server:
  • DLL errors fixed,
  • Updated vJoy to latest version (fixes Windows 10 compatibility),
  • Screenshot code scrapped
  • 2 separate JoySticks can be configured,
  • 8 additional JoyStick buttons supported,

With thanks to @~Poke~ for some of the patches used in this version.

Unless there are any major problems with this release, I probably won't be doing anymore with this project.
 
Version 0.6 released. Get it from here as always.

Changelog:



With thanks to @~Poke~ for some of the patches used in this version.

Unless there are any major problems with this release, I probably won't be doing anymore with this project.
Sorry, but what can I do? I try to execute 3DSController.exe for the first time, and it only crashes asking for MSVCR120 (0.6 version, Windows 10). Should I download the DLL?
 
Sorry, but what can I do? I try to execute 3DSController.exe for the first time, and it only crashes asking for MSVCR120 (0.6 version, Windows 10). Should I download the DLL?

yes, you should download the dll.

Version 0.6 released. Get it from here as always.

Changelog:



With thanks to @~Poke~ for some of the patches used in this version.

Unless there are any major problems with this release, I probably won't be doing anymore with this project.

i'm going to test this, ty for the update c:
PD: can i post this hombrew in a spanish forum? (http://www.emudesc.com/forums/nintendo-3ds.105/)
 
EDIT -

Still can't use the touch screen as joystick or the tap as a button :'c
so sad...
Forget what I said in my last post. You're supposed to change values on the .ini file in PC folder:

cdcdcd.PNG


Did you already try that?
 
Forget what I said in my last post. You're supposed to change values on the .ini file in PC folder:

View attachment 24798

Did you already try that?

of course i did x'D with the Touch and the TAP
i'm with this since past week and nothing work, try to use the touch screen keyboard (L + R + X) as keys too but they don't work well.

(Viendo tu país, puedo hablarte en español. He jugado con esas configuraciones y no funciona, ni siquiera usar el circle pad como mouse)
 
of course i did x'D with the Touch and the TAP
i'm with this since past week and nothing work, try to use the touch screen keyboard (L + R + X) as keys too but they don't work well.

(Viendo tu país, puedo hablarte en español. He jugado con esas configuraciones y no funciona, ni siquiera usar el circle pad como mouse)

English:

The options you can put for Touch setting are MOUSE, JOYSTICK1 or JOYSTICK2. I was talking about the first thing you said, using it as a Joystick. The Tap option is nowhere to be seen in the code (I didn't check all of the files, though).

Español:

Las opciones que puedes poner para Touch son MOUSE, JOYSTICK1 o JOYSTICK2. Estaba hablando de lo primero que mencionaste, usar la pantalla como Joystick. La opción para tocar la pantalla para click del mouse no está por ninún lado en el código (aunque no revisé bien todos los archivos).
 
English:

The options you can put for Touch setting are MOUSE, JOYSTICK1 or JOYSTICK2. I was talking about the first thing you said, using it as a Joystick. The Tap option is nowhere to be seen in the code (I didn't check all of the files, though).

Español:

Las opciones que puedes poner para Touch son MOUSE, JOYSTICK1 o JOYSTICK2. Estaba hablando de lo primero que mencionaste, usar la pantalla como Joystick. La opción para tocar la pantalla para click del mouse no está por ninún lado en el código (aunque no revisé bien todos los archivos).

Español
Mira mas abajo (al final de hecho), está "TAP" que es el toque sobre la pantalla táctil, y está configurado como "SPACE" y no funciona.
De igual forma no puedes configurar la Touch screen como Joystick, no lo reconoce tampoco, solo funciona como mouse y nada mas.

English
oh well guys, still shit-chat, nothing important don't worry for this x'D
 
Español
Mira mas abajo (al final de hecho), está "TAP" que es el toque sobre la pantalla táctil, y está configurado como "SPACE" y no funciona.
De igual forma no puedes configurar la Touch screen como Joystick, no lo reconoce tampoco, solo funciona como mouse y nada mas.

ENG/Okay. I think I didn't take the needed time for reading all that. I hope to give it a better look later today or tomorrow, and if I'm able to change something for making it work I'll try, it doesn't look that hard, with a little of C experience, one could change the code easily and see why it's not working even with the JOYSTICK options.

SPA/Bien, creo que no me di el tiempo necesario para ver todo eso. Espero echarle un vistazo más tarde o mañana, si me es posible modificar algo para que quede lo intentaré, no se ve tan complicado, con algo de experiencia en C, podría modificarse fácilmente el código y ver por qué no responde siquiera a la opción de JOYSTICK.
 
  • Like
Reactions: Sr. G
Make sure you use the stylus for the touch screen, fingers are too unreliable. I tested touch screen as both joystick 1 and 2 after implementing and they showed up in the vjoy monitor, try look at that to see what's happening.
I didn't really look into the tap setting and it doesn't work for me either, I just map it to none to be safe :p
Also remember that if you have 2 things mapped to the same joystick only 1 will go through. I just realised that cStick has the highest priority in this which is probably not a good thing for o3ds users haha, but if you set it to none it'll work fine.

I have a few ideas for other things I can add, to bring the n3ds up to full xbox controller compatibility (currently has everything except stick buttons). Those ideas are using the volume slider as another axis, and having an option for more configurable buttons on screen. it's a low priority though, since being 2 buttons short is easy to work around.

Something else to keep in mind is that (I've heard?) cias don't have access to n3ds features, so if you want them run the 3dsx. I don't have a way to run cias so I can't test this :p

EDIT: Ok the big important change is you need to update vJoy to the one linked in the readme. If you don't want to, you can overwrite the included .dll with the one from the older versions of 3DSController. But yes, the included vJoy version was raised since people were having to replace it manually for windows 10 compatibility.
 
Last edited by ~Poke~,
Version 0.6 released. Get it from here as always.

Changelog:



With thanks to @~Poke~ for some of the patches used in this version.

Unless there are any major problems with this release, I probably won't be doing anymore with this project.

Is there a way to use two 3DS as controllers at the same time?

Also, there's a bug in the CIA version when using rxTools, after you exit 3DS Controller the screen brightness doesn't go back to normal.
 
Is there a way to use two 3DS as controllers at the same time?

Also, there's a bug in the CIA version when using rxTools, after you exit 3DS Controller the screen brightness doesn't go back to normal.

Not currently. If you configure vJoy to allow 2 virtual devices then it would be a trivial edit to make the 3DSController program output to the second device. Then you might be able to run both copies at the same time? I think it would work if you choose a different port for controller 2.
I think this would work, though the different port requirement means that you'd have to edit the ini on the 3ds side to make it connect to the second instance.
I can go compile a device 2 version if you like, and maybe make the output device configurable in the future.

I can't compile or run CIAs so I can't help with your other issue, though if you can compile it yourself then it'd be possible to just remove the screen dimming.

EDIT: Here you go, this is identical to 0.6 except it outputs to vJoy interface 2. Remember to change the port. If you're not interested in the vjoy side then you don't need this edit, 2 of the original will work with different ports (but no joysticks)
 
Last edited by ~Poke~,

Site & Scene News

Popular threads in this forum