Homebrew 3DSControllerPlus - PC-->3DS video and input streaming

  • Thread starter Sono
  • Start date
  • Views 86,037
  • Replies 381
  • Likes 49

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,353
Country
Hungary
All right. GIMP.ini. I do not see how does this fit on the Python script.

Ouch.

Yeah, for the Python script there is a list of tuples which stores rectangle bounds, it's named alt_map.
Here is the format: (X, Y, width, height, [keys])
Example: CTRL-S (0, 0, 16, 16, [Xlib.XK.XK_Control_L, "S"])
 

Rayster

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
148
Trophies
0
XP
218
Country
EDIT: Managed to make the touch screen work, but the keypads nada.. hmm

whats:

CAL:
32;24 --> 492;521
288;216 --> 3568;3563

Also managed to key this as well:

you must configure the parameters in vJoyConf otherwise you'll get a crash
  • Axes = X, Y, Ry, Ry
  • Number of buttons = 16
  • POV = 1 Continuous
  • Disable all effects

Why 2 Ry? Also keypads doesnt seem to work.
 
Last edited by Rayster,

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,353
Country
Hungary
EDIT: Managed to make the touch screen work, but the keypads nada.. hmm

whats:

CAL:
32;24 --> 492;521
288;216 --> 3568;3563

Also managed to key this as well:

you must configure the parameters in vJoyConf otherwise you'll get a crash
  • Axes = X, Y, Ry, Ry
  • Number of buttons = 16
  • POV = 1 Continuous
  • Disable all effects

Why 2 Ry? Also keypads doesnt seem to work.

What is a keypad?

The CAL popup happens when using osu!Controller, I accidentally left it in. It displays touch screen callibration, which changes hardware touchscreen readings into pixel co-ordinates.

The vJoy client will be eventually replaced by an Xbox360 controller emulator. In the meantime enable Z and Rz too if you want to use the CStick. Double Ry is a typo, it should be Rx, Ry, Rz.
 

Eveldee

Well-Known Member
Member
Joined
Aug 16, 2019
Messages
234
Trophies
0
Age
22
XP
1,437
Country
France
Hi, firstly thank you for making this, it's awesome!

For people that want to use it as a controller on any game, here are some steps:

Firstly, make sure that everything works fine on the 3DS side.

Then, install vJoy driver from their official website:
http://vjoystick.sourceforge.net/site/index.php/download-a-install/download

Don't forget to configure it according to OP

After this, download UCR from GitHub:
https://github.com/Snoothy/UCR/releases

You can now run DummyJoy, connect to your 3DS and check that you can interact with the vJoy controller using vJoy Monitor.

Now, you only need to configure UCR to emulate an Xbox360 controller:

Install ViGEmBus:
https://github.com/ViGEm/ViGEmBus/releases

You can now run UCR, and create a new profile, set the input device to the fist vJoy Device and the output one to the first ViGEm Xbox 360 controller.
Now, you need to map all buttons and axis, run the profile, and you're ready to go!
It should even works on games that has protections like Denuvo.

Note:
To map LT and RT, you will need to use two "Map two buttons to one axis", like this:
aC7-MSAZTUWSoTqm3Ai5LQ.png


I hope it helped you, feel free to ask any questions

Edit: it's now way easier as I have written a program to emulate an Xbox360/DS4 controller directly:
https://github.com/Eveldee/Eveldee.3DSCPlusViGEm
 
Last edited by Eveldee,
  • Like
Reactions: Zense and Sono

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,353
Country
Hungary
Hi, firstly thank you for making this, it's awesome!

For people that want to use it as a controller on any game, here are some steps:

-snip-

Thanks for the temporary workaround!

Edit: added reference to first post until I get xboxinterface working
 
Last edited by Sono,
  • Like
Reactions: Eveldee and Zense

Eveldee

Well-Known Member
Member
Joined
Aug 16, 2019
Messages
234
Trophies
0
Age
22
XP
1,437
Country
France
Thanks for the temporary workaround!

Edit: added reference to first post until I get xboxinterface working

If you run into issues using the old ScpVBus, you may try to use ViGEm, it's updated and easier to install.
I think you can look at the code of UCR to know how to use it

Edit: I can try to look at it myself, but I'm unable to get the source of DummyJoy on the repository
 
Last edited by Eveldee,
  • Like
Reactions: Zense

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,353
Country
Hungary
If you run into issues using the old ScpVBus, you may try to use ViGEm, it's updated and easier to install.
I think you can look at the code of UCR to know how to use it

Edit: I can try to look at it myself, but I'm unable to get the source of DummyJoy on the repository

Yeah, no idea how to use ViGEM, I'm still stuck with ScpVbus.

DummyJoy's source code was never released, nor was it ever meant to be released; it's just a hackjob I used myself, but people have been requesting for ages. Just use a .NET decompiler, the interesting stuff is in the Dummy class.
 

Rayster

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
148
Trophies
0
XP
218
Country
Hi, firstly thank you for making this, it's awesome!

For people that want to use it as a controller on any game, here are some steps:

Firstly, make sure that everything works fine on the 3DS side.

Then, install vJoy driver from their official website:
http://vjoystick.sourceforge.net/site/index.php/download-a-install/download

Don't forget to configure it according to OP

After this, download UCR from GitHub:
https://github.com/Snoothy/UCR/releases

You can now run DummyJoy, connect to your 3DS and check that you can interact with the vJoy controller using vJoy Monitor.

Now, you only need to configure UCR to emulate an Xbox360 controller:

Install ViGEmBus:
https://github.com/ViGEm/ViGEmBus/releases

You can now run UCR, and create a new profile, set the input device to the fist vJoy Device and the output one to the first ViGEm Xbox 360 controller.
Now, you need to map all buttons and axis, run the profile, and you're ready to go!
It should even works on games that has protections like Denuvo.

Note:
To map LT and RT, you will need to use two "Map two buttons to one axis", like this:
aC7-MSAZTUWSoTqm3Ai5LQ.png


I hope it helped you, feel free to ask any questions

Thanks for this share as well. Hope other people will find it useful.

What is a keypad?

The CAL popup happens when using osu!Controller, I accidentally left it in. It displays touch screen callibration, which changes hardware touchscreen readings into pixel co-ordinates.

The vJoy client will be eventually replaced by an Xbox360 controller emulator. In the meantime enable Z and Rz too if you want to use the CStick. Double Ry is a typo, it should be Rx, Ry, Rz.

That's interesting if I'm willing to wait. but for now I decided to buy an cheap joystick to finish my XIII-2 journey. Your future released will be interesting to other people. and if I might ended up here again I will try it too!
 
  • Like
Reactions: Zense and Sono

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,825
Trophies
2
Location
home
XP
9,353
Country
Hungary
Here is the fist release, please report any bug if you find one, and tell me if you see any improvement that could be made.
I hope you'll enjoy it: https://github.com/Eveldee/Eveldee.3DSCPlusViGEm

Aww yes!

I can't wait to test this out :lol:

Two things I noticed though:
1) You're handling TouchEx as regular touch, when it's not. Regular touch uses software co-ordinates [0;0 --> 320;240), whereas TouchEx uses hardware co-ordinates [0;0 --> 4096;4096).
2) In Controller.cs there is a possible race condition in the Stop method. I suggest subscribing to the disconnect event first, then disconnecting. Also don't forget to unsubscribe from the event handler after it has fired!
 
  • Like
Reactions: Eveldee and Zense

Eveldee

Well-Known Member
Member
Joined
Aug 16, 2019
Messages
234
Trophies
0
Age
22
XP
1,437
Country
France
Thanks for the advices, I've not decided what I will do with the touch input at the moment, I'll check this out when trying to use it.

To be honest, the way I handle disconnecting seems wrong for me, I'll try to do it differently.

Edit: I fixed the racing condition, but I have an issue with the touch input: when I try to map the touch input in TouchEx, it repeats the input instead of staying "pressed", do you have any idea why?
 
Last edited by Eveldee,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • The Real Jdbye @ The Real Jdbye:
    if you keep them well enough fed, it's the same thing
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    By the power of Florida Man, I have the power!!! *Lifts up meth pipe* Meth Man!!! lol
  • BakerMan @ BakerMan:
    Guys, I just learned my little brother is in the hospital because he had a seizure last night.
  • cearp @ cearp:
    Sorry to hear that BakerMan
    +2
  • BakerMan @ BakerMan:
    Just found out he's doing alright, doing a lot of complaining too, rightfully so. Who wouldn't complain after having a seizure and being hospitalized?
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Glad he is OK and complaining is cool :)
    +1
  • K3Nv2 @ K3Nv2:
    Yeah been there had that no fun
    +1
  • K3Nv2 @ K3Nv2:
    They'll give him sleep studies eegs and possibly one week hospital stay
    +1
  • BakerMan @ BakerMan:
    I hope it's not a week.
  • K3Nv2 @ K3Nv2:
    It's standard so doctors can get a idea about what's going on
  • BakerMan @ BakerMan:
    understood
  • BakerMan @ BakerMan:
    well, i'm glad he seems to be doing fine, and ig i'm going to start spewing goofy shit again
  • BakerMan @ BakerMan:
    Update: Turns out he's epileptic
  • K3Nv2 @ K3Nv2:
    Get a 2nd opinion run mris etc they told me that also
  • Psionic Roshambo @ Psionic Roshambo:
    Also a food allergy study would be a good idea
  • K3Nv2 @ K3Nv2:
    Turns out you can't sprinkle methamphetamine on McDonald's French fries
    +1
  • ZeroT21 @ ZeroT21:
    they wouldn't be called french fries at that point
    +1
  • ZeroT21 @ ZeroT21:
    Probably just meth fries
    +1
  • K3Nv2 @ K3Nv2:
    White fries hold up
    +1
  • The Real Jdbye @ The Real Jdbye:
    @K3Nv2 sure you can
  • BakerMan @ BakerMan:
    why tf do people hate android users? is it the video quality? just because "AnDrOiD = pOoR" bc they don't cost an arm and a leg like iphones do?
  • BakerMan @ BakerMan:
    i won't be turned off by an iphone, but don't pick on me for having an android, that's just how this shit should work
  • ZeroT21 @ ZeroT21:
    Should say more what these kind of android users say bout nokia 3310 users
    ZeroT21 @ ZeroT21: Should say more what these kind of android users say bout nokia 3310 users