Homebrew [Android] IRdA - InputRedirection client for Android

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,319
Country
Hungary
Anyways don't worry about it! Basically an easier solution for what I'm trying to do, which is trying to use a 3DS as a controller for another 3DS using the input redirection feature of Rosalina, would probably be if I made a client app on the 3DS that sends its inputs via a hotspot to Rosalina's own input redirection feature. I hope it won't be too difficult and it seems very interesting for me to figure out how to do. This is just a simple way of having two player on one system with retroarch on the host system when you're away from home but have two 3ds systems available.

I actually already did this ages ago :rofl2:
I can't find a thread, but there is a download link somewhere. The latency is so low that even using a 3DS chain I don't feel any delay.
 
  • Like
Reactions: Zense

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
I actually already did this ages ago :rofl2:
I can't find a thread, but there is a download link somewhere. The latency is so low that even using a 3DS chain I don't feel any delay.
Oh wow well if you do then please share :grog:

I've already been searching for it many times so I figured it didn't exist.
 

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
Just tried it out and there was no input delay at all even with a weak connection! Thid is just the kind of app I was after. The only thing I'd still miss for my purpose would be new3ds inputs support (zl,zr, cstick) and remapping so that again abxy could do a different command on the host system. If you don't mind I would love to have a look at if I can add this, since I don't want to ask more of you than what you've already done...
 
  • Like
Reactions: Sono

Sono

cripple piss
OP
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,319
Country
Hungary
Just tried it out and there was no input delay at all even with a weak connection! Thid is just the kind of app I was after. The only thing I'd still miss for my purpose would be new3ds inputs support (zl,zr, cstick) and remapping so that again abxy could do a different command on the host system. If you don't mind I would love to have a look at if I can add this, since I don't want to ask more of you than what you've already done...

Sadly new3DS button support is difficult, so I didn't implement that.

I'll send you the source code in PM. It has no comments, so good luck™

Edit: I'm an idiot and didn't implement new3DS support. Oops :rofl2:
 
Last edited by Sono,
  • Like
Reactions: Zense

EndlessGG

Member
Newcomer
Joined
May 7, 2020
Messages
10
Trophies
0
Age
23
XP
166
Country
Angola
l must say this is a amazing work you did,
And I want to ask, Is it possible to use as the second controller when I play snes game in 2p mode
 

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
l must say this is a amazing work you did,
And I want to ask, Is it possible to use as the second controller when I play snes game in 2p mode
Yes, if I understand you correctly then this is what I've been looking into. Are you talking about having one person using the 3ds as controller and the second controller by someone else in a multiplayer game?
 
  • Like
Reactions: EndlessGG

EndlessGG

Member
Newcomer
Joined
May 7, 2020
Messages
10
Trophies
0
Age
23
XP
166
Country
Angola
Yes, if I understand you correctly then this is what I've been looking into. Are you talking about having one person using the 3ds as controller and the second controller by someone else in a multiplayer game?
right, really?how could I do that?
 

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
Of course android!
Oh right since we're in this thread. Well,

Part 1 Input Redirecting to your controller

1. Connect your controller to your android phone in whatever way works (usb or bluetooth).

2. Install and start IRdA on your phone.

3. Map your controller to the 3ds inputs. Press the buttons on your controller and choose what respective button on your 3ds you want it to be mapped to. Ex if you press A on your controller then you can choose A from the list. The trick is to map your controller to buttons you won't be using on your 3ds since you'll have to divide all buttons available on your 3ds between the 3ds and the second controller. Here's some tips: map the controller A as R on the 3ds. B as L. L2 as Y and R2 as X. You can also map one of those controller buttons as Select on the 3DS. You'll get how this works when you try it. For your analog sticks you have to press "CAL axis" and choose the axis you want and press OK on the options you get. Cpad is left stick. Cstick is right stick.

4. Start input redirection on your 3ds. Enter Rosalina menu on your 3ds (l+dpad down+select). Go to miscellaneous options. Press "Start InputRedirection".

5. Press B and take note of the IP adress on the top right of your screen.

6. Press input IP address in the options in IRdA and write that IP address. *Obviously your phone and 3DS has to be connected to the same network. Your 3ds can be connected to your android's hotspot also.

7. Exit out of rosalina and you should be able to control your 3ds with the controller.

Part 2 Retroarch Multiplayer

1. Go to settings and input. Scroll down to User 2 and set device to 3ds. Use the latest stable retroarch.

2. Start any game with the emulator you want (snes9x2002 has issues with input changing.).

3. Go to quickmenu and controls. Go to Player 2 and set the corresponding left analog axes as dpad directions. Now, remember how you mapped your controller earlier and scroll down and set L as A and R as B etc. Then set Left Analog as the dpad by mapping the respective direction. The person using the controller will have to use the analog stick for movement, because the 3ds' circlepad won't work on the 3ds as long as it is receiving input from a controller for some reason.

4. Make sure two controllers are connected for the system you're emulating. Sometimes this is in quickmenu options (i.e. pcsx_rearmed) other times in controls.

5. You should be ready to play.
 
Last edited by Zense,
  • Like
Reactions: Sono and EndlessGG

EndlessGG

Member
Newcomer
Joined
May 7, 2020
Messages
10
Trophies
0
Age
23
XP
166
Country
Angola
Oh right since we're in this thread. Well,

Part 1 Input Redirecting to your controller

1. Connect your controller to your android phone in whatever way works (usb or bluetooth).

2. Install and start IRdA on your phone.

3. Map your controller to the 3ds inputs. Press the buttons on your controller and choose what respective button on your 3ds you want it to be mapped to. Ex if you press A on your controller then you can choose A from the list. The trick is to map your controller to buttons you won't be using on your 3ds since you'll have to divide all buttons available on your 3ds between the 3ds and the second controller. Here's some tips: map the controller A as R on the 3ds. B as L. L2 as Y and R2 as X. You can also map one of those controller buttons as Select on the 3DS. You'll get how this works when you try it. For your analog sticks you have to press "CAL axis" and choose the axis you want and press OK on the options you get. Cpad is left stick. Cstick is right stick.

4. Start input redirection on your 3ds. Enter Rosalina menu on your 3ds (l+dpad down+select). Go to miscellaneous options. Press "Start InputRedirection".

5. Press B and take note of the IP adress on the top right of your screen.

6. Press input IP address in the options in IRdA and write that IP address. *Obviously your phone and 3DS has to be connected to the same network. Your 3ds can be connected to your android's hotspot also.

7. Exit out of rosalina and you should be able to control your 3ds with the controller.

Part 2 Retroarch Multiplayer

1. Go to settings and input. Scroll down to User 2 and set device to 3ds. Use the latest stable retroarch.

2. Start any game with the emulator you want (snes9x2002 has issues with input changing.).

3. Go to quickmenu and controls. Go to Player 2 and set the corresponding left analog axes as dpad directions. Now, remember how you mapped your controller earlier and scroll down and set L as A and R as B etc. Then set Left Analog as the dpad by mapping the respective direction. The person using the controller will have to use the analog stick for movement, because the 3ds' circlepad won't work on the 3ds as long as it is receiving input from a controller for some reason.

4. Make sure two controllers are connected for the system you're emulating. Sometimes this is in quickmenu options (i.e. pcsx_rearmed) other times in controls.

5. You should be ready to play.
Thank you so much!But I always play snes with the snes9x for 3ds,so I will try the method if I have chance.
 

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
Thank you so much!But I always play snes with the snes9x for 3ds,so I will try the method if I have chance.
Yes. Snes9x2005 and 2005+ and 2010 work fine. Snes9x 2002 does work too but it requires some more tinkering from your side. I might be interested in getting it to work myself since it performs better in some cases, but at the moment I don't have a need to. You'll basically have to edit the remap file yourself by opening it. Or you can guess your way by pressing left and right on the control settings under quick menu since that also works even if it seems to not respond for some weird reason. I was hoping this could be fixed with a simple retroarch update but so far nothing. Maybe if I look back at older releases of retroarch and see if it used to work.

Anyways, tell me if you have any problems and personally I find IRdA to work best since it gives more customization options
 
  • Like
Reactions: Sono

chirogan

The Engineer
Member
Joined
Feb 28, 2018
Messages
379
Trophies
0
XP
396
Country
Philippines
Hey the link seems to be down? Is it possible to have this reuploaded somewhere? I take it this one is more recent than the one on the OP?@chirogan I'll tag you as well in case you have it stored somewhere.

I'm trying to get a tutorial up on how to do single system multiplayer in retroarch using input redirect and this seems like the best alternative for android.
 
Last edited by chirogan,
  • Like
Reactions: felixsrg and Sono

chirogan

The Engineer
Member
Joined
Feb 28, 2018
Messages
379
Trophies
0
XP
396
Country
Philippines
Hi all. Im bumping this thread up in case someone comes across one of the most useful apps posted here on GBATemp.

Normally, we would hook up our 3ds and Phone in a common router to make this work. This introduced a lot of latency problems in my controller and frequent drops.. especially when a lot of users connect in the router. I even bought a dedicated pocket wifi for this.

Recently, i tried to connect my 3ds on to my phone through mobile hotspot and tried if this will work. And guess what
IT DID WORK.

So basically youcould play with your controller under 3 requirements.
1. Your 3ds; connected to:
2. Android phone with mobile Hotspot
3. Supported controller on android.

Happy gaming!

P.S. mashing my controller playing monster hunter; smash; and other platforming games without worrying my 3ds joysticks and buttons will break.
 
  • Like
Reactions: Zense

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
Hi all. Im bumping this thread up in case someone comes across one of the most useful apps posted here on GBATemp.

Normally, we would hook up our 3ds and Phone in a common router to make this work. This introduced a lot of latency problems in my controller and frequent drops.. especially when a lot of users connect in the router. I even bought a dedicated pocket wifi for this.

Recently, i tried to connect my 3ds on to my phone through mobile hotspot and tried if this will work. And guess what
IT DID WORK.

So basically youcould play with your controller under 3 requirements.
1. Your 3ds; connected to:
2. Android phone with mobile Hotspot
3. Supported controller on android.

Happy gaming!

P.S. mashing my controller playing monster hunter; smash; and other platforming games without worrying my 3ds joysticks and buttons will break.
I thought I'd already posted this solution but yeah it works great! I'm still trying to figure out how to make the direct input direction from n3ds to n3ds send cstick and zl+zr.
 
  • Like
Reactions: chirogan

chirogan

The Engineer
Member
Joined
Feb 28, 2018
Messages
379
Trophies
0
XP
396
Country
Philippines
I thought I'd already posted this solution but yeah it works great! I'm still trying to figure out how to make the direct input direction from n3ds to n3ds send cstick and zl+zr.
I just discovered this yesterday. My bad.

Im afraid i couldnt help you on that. Those are beyond my knowledge.
Why do you want to use another 3ds as controller? If you dont mind me asking.
 
Last edited by chirogan,

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,306
Country
Italy
Im afraid i couldnt help you on that. Those are beyond my knowledge.
Why do you want to use another 3ds as controller? If you dont mind me asking.
Basically for playing emulated games in multiplayer since with the buttons available on a n3ds you have enough buttons for multiplayer on all emulated systems the 3ds has to offer. I'm more likely to be having two 3DSs with me when travelling around than a 3DS and a controller.

As for the input mapping you would for example have to make the second 3DS' A button work like a ZR as an example. I guess this is sort of a niche thing but if you have someone you want to play more multiplayer games on your system with, you can do it this way.
 
Last edited by Zense,
  • Like
Reactions: chirogan

chirogan

The Engineer
Member
Joined
Feb 28, 2018
Messages
379
Trophies
0
XP
396
Country
Philippines
Basically for playing emulated games in multiplayer since with the buttons available on a n3ds you have enough buttons for multiplayer on all emulated systems the 3ds has to offer. I'm more likely to be having two 3DSs with me when travelling around than a 3DS and a controller.

As for the input mapping you would for example have to make the second 3DS' A button work like a ZR as an example. I guess this is sort of a niche thing but if you have someone you want to play more multiplayer games on your system you can do it this way.
I see. Thank you for the details in your situation and goodluck with it.
 
  • Like
Reactions: Zense

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: Have a nice day. Life. Week. Month. year.