Homebrew Single-Device Retroarch Multiplayer?

Plasmaster09

Social Justice Potato
Member
Joined
Feb 20, 2020
Messages
1,371
Reaction score
1,881
Trophies
1
Age
21
Location
somewhere that may or may not exist
XP
2,551
Country
United States
I know that standard local multiplayer on 3DS Retroarch is basically impossible, let alone online netplay. However, since people have already figured out how to get 2 player NES emulation working on one 3ds (use multiple controllers configured to different buttons of one 3ds)... could it be done? Especially with the New 3ds's extra buttons and stick, I figure it could definitely be done for a lot more than just NES if you fudge around with controls. However, for whatever reason, Retroarch 3DS doesn't even let me configure device 1 (i.e. the 3ds and the only device) buttons for player 2 controls at all.
Is there a way to do this that I'm missing, or is it literally not an option for whatever reason? If not... could someone try to implement it?

After all, at least on a New 3DS, there are literally enough buttons for almost any system you'd be emulating on it in 2 player. (I can't get PS1 games to run well for the life of me, so that doesn't count.) The only sacrifice would be independent Start and Select buttons in SNES two-player, and a decent amount of the time only one player needs to use those.
 
Last edited by Plasmaster09,
As far i i'm aware, the current implemented controller driver doesn't support a second controller plugged in a second port.

This is based on a TGB-Dual core i've been playing around with. While i could run 2 Pokemon games alongside, i was never able to get the second player controls to work.

Maybe it's core dependent, but i haven't tried it on other cores. I don't think it's currently possible.
 
As far i i'm aware, the current implemented controller driver doesn't support a second controller plugged in a second port.

This is based on a TGB-Dual core i've been playing around with. While i could run 2 Pokemon games alongside, i was never able to get the second player controls to work.

Maybe it's core dependent, but i haven't tried it on other cores. I don't think it's currently possible.
Yeah, I know it can't do that on 3ds. However, it doesn't make any sense that I can't even seem to configure player 2 buttons with ANYTHING except possibly MAME.
 
Yeah, I know it can't do that on 3ds. However, it doesn't make any sense that I can't even seem to configure player 2 buttons with ANYTHING except possibly MAME.

I meant the emulated 2nd player port, just to be clear..

The current driver registers the controller as a 1 player only device, plugged in the first *virtual port.
 
Yeah, I know it can't do that on 3ds. However, it doesn't make any sense that I can't even seem to configure player 2 buttons with ANYTHING except possibly MAME.
I can't help you with the technical side of it, but I can atleast share that there are games for some of the systems that have this function natively. The first to spring to mind are the Micromachines games for Sega Mega Drive/Genesis, SNES or PS1 (pretty sure the ones on that system have it as well.). These games let you play two players on one controller.

You're actually right about there being enough buttons/ways of input to have two separate snes controllers fully mapped to each half of the console (excluding start and select for both).
 
I can't help you with the technical side of it, but I can atleast share that there are games for some of the systems that have this function natively. The first to spring to mind are the Micromachines games for Sega Mega Drive/Genesis, SNES or PS1 (pretty sure the ones on that system have it as well.). These games let you play two players on one controller.

You're actually right about there being enough buttons/ways of input to have two separate snes controllers fully mapped to each half of the console (excluding start and select for both).
yeah I figured
left stick + abxy + lr for player 1, c stick + d-pad + zlzr for player 2
that way player 1 still has normal controls but there's room for player 2 if you use input redirection and hook up controllers
wonder why you can't just map player 2 buttons on to player 1's device since 3ds only has one device- the 3ds.
man I just really want two player fighting games and whatnot considering the FANTASTIC library of them whether it be console, arcade or even handheld
pity the 3ds emulation scene is like 95% dead because of the Switch and the only emulator being really worked on with significant stuff being added is the very-in-progress N64 emulator
 
yeah I figured
left stick + abxy + lr for player 1, c stick + d-pad + zlzr for player 2
that way player 1 still has normal controls but there's room for player 2 if you use input redirection and hook up controllers
wonder why you can't just map player 2 buttons on to player 1's device since 3ds only has one device- the 3ds.
man I just really want two player fighting games and whatnot considering the FANTASTIC library of them whether it be console, arcade or even handheld
pity the 3ds emulation scene is like 95% dead because of the Switch and the only emulator being really worked on with significant stuff being added is the very-in-progress N64 emulator
I just checked this and I was able to play Super Street Fighter II on genesis plus gx with two players. I realise your settings are a bit better than the cumbersome ones I thought of:
player 1:cpad=dpad, dpad=abxy, l1,l2,=l,r
player 2:cstick=dpad,abxy=abxy, r1,r2=l,r

I didn't manage to get it to work with picodrive though but that might be an error on my side. Yep it was an error on my side and works if you follow the steps below. I'm curious to see if it works with all retroarch emulators now...

Now if there's input redirection done through android we could enjoy two player anywhere. Found that as well. Haven't tested it out though: https://github.com/JambonBeurreMan/InputRedirectionClient-Qt-Android

Also, if you're even more crazy you can connect a second 3DS as a controller to your android phone by using this (NB I haven't tested this :P):
https://github.com/hacker1024/ctroller-android-app
https://github.com/hacker1024/ctroller-android

It's of course also possible to connect a 3DS to a PC like a controller.

The simplest way of course is just to use a normal controller connected to a PC, or even an android phone. You can do this by using this program:
https://github.com/TuxSH/InputRedirectionClient-Qt/releases

I've tried several apps to remap my wii u controller connected through magic-ns adapter but none of them work (:x360ce, Durazno, XInputPlus). The only remapping I was able to do was with WiinUSoft having my wii u pro controller connected to my pc with bluetooth.)

Input redirection on the 3DS is done through rosalina menu accessed by pressing L+Dpad down+select. Then go to miscellaneous options and start inputredirection. Take note of the ip address on the top right and use that in whatever input redirection client you have.

EDIT: If you haven't figured out how to do it then follow this: Go to "settings/input/user 2 binds" and set user 2 device index to 3ds controller. Then run your rom and go to controls in the quick menu. From there go down to the second set of auto: Circle Pad Right inputs and when it says User #2 in the bottom left corner. Set the inputs you want for player two on the Circle Pad and Cstick. Also make sure player two has a device type that actually works with the game on the top of the controls menu. This has worked with every emulator that supports control remapping in retroarch.

Cores I've tested so far:
FCEumm - Works.
Genesis Plus GX - Works.
Mednafen PCE Fast - Does not work - You can't remap controls.
PCSX Rearmed - Works (!)
Picodrive - Works.
Snes9x 2002 - Doens't work - Doesn't let me change controls in the quick menu.
Snes9x 2005 - Works until I redirect input and it just refuses to play past the first few seconds of the game. It's happening even without redirecting now...
Snes9x 2005+ - Works.
Snes9x 2010 - Works.

Now my only complaint is that Retroarch for some reason doesn't allow you to use the abxy, shoulder buttons or start and select as inputs for player 2 for some reason. Maybe we should request this to be fixed since it seems very trivial but so necessary to get enough inputs to work with.

Also I would say the 3DS scene got pretty revitalized by the n64 emulator. Personally I enjoy seeing how far gbarunner2 has come. Heck it has even surpassed mgba and higan in accuracy on some (albeit) few roms! (Pacman World 1+2, Grim Adventures and possibly more).
 
Last edited by Zense,
I just checked this and I was able to play Super Street Fighter II on genesis plus gx with two players. I realise your settings are a bit better than the cumbersome ones I thought of:
player 1:cpad=dpad, dpad=abxy, l1,l2,=l,r
player 2:cstick=dpad,abxy=abxy, r1,r2=l,r

I didn't manage to get it to work with picodrive though but that might be an error on my side. Yep it was an error on my side and works if you follow the steps below. I'm curious to see if it works with all retroarch emulators now...

Now if there's input redirection done through android we could enjoy two player anywhere. Found that as well. Haven't tested it out though: https://github.com/JambonBeurreMan/InputRedirectionClient-Qt-Android

Also, if you're even more crazy you can connect a second 3DS as a controller to your android phone by using this (NB I haven't tested this :P):
https://github.com/hacker1024/ctroller-android-app
https://github.com/hacker1024/ctroller-android

EDIT: If you haven't figured out how to do it then follow this: Go to "settings/input/user 2 binds" and set user 2 device index to 3ds controller. Then run your rom and go to controls in the quick menu. From there go down to the second set of auto: Circle Pad Right inputs and set the inputs you want for player two. Also make sure player two has a device type same as player 1 on the top of the same menu. This is how I did it for genesis plus gx.

Also I would say the 3DS scene got pretty revitalized by the n64 emulator. Also personally I enjoy gbarunner2 and its quickly development. Heck it has even surpassed mgba and higan in accuracy on some very few roms! (Pacman World 1+2 and Grim Adventures and possibly more).

Cores I've tested so far:
Snes9x 2002 - Doens't work - Doesn't let me change controls in quick menu.
Snes9x 2005 - Works.
Snes9x 2010 - Works.
FCEumm - Works.
PCSX Rearmed - Works (!)
Thank you SO MUCH. I'll be trying this out in a bit!
Sadly I'm in an Apple family, so we don't have an Android phone to easily do input redirection.
Wonder if there exists a bluetooth dongle that basically just connects to a specific ip address and you sync up a controller and that's it.
I use Snes9x 2002, and I'll check to see if I can get that working.
I also used to use GBArunner2 because I couldn't get gpSP to actually work.
Now I can and I use it.
Edit: I can enter the controls config menu in SNES9x 2002 but can't actually change things. Well, crud.
Can you test it with FBNeo for me? The compatibility for me seems to be rather schizophrenic- last week everything worked, yesterday everything crashed, I don't know about today aside from the fact that the two games I tried work.
 
Last edited by Plasmaster09,
  • Like
Reactions: Zense
I just checked this and I was able to play Super Street Fighter II on genesis plus gx with two players. I realise your settings are a bit better than the cumbersome ones I thought of:
player 1:cpad=dpad, dpad=abxy, l1,l2,=l,r
player 2:cstick=dpad,abxy=abxy, r1,r2=l,r

I didn't manage to get it to work with picodrive though but that might be an error on my side. Yep it was an error on my side and works if you follow the steps below. I'm curious to see if it works with all retroarch emulators now...

Now if there's input redirection done through android we could enjoy two player anywhere. Found that as well. Haven't tested it out though: https://github.com/JambonBeurreMan/InputRedirectionClient-Qt-Android

Also, if you're even more crazy you can connect a second 3DS as a controller to your android phone by using this (NB I haven't tested this :P):
https://github.com/hacker1024/ctroller-android-app
https://github.com/hacker1024/ctroller-android

EDIT: If you haven't figured out how to do it then follow this: Go to "settings/input/user 2 binds" and set user 2 device index to 3ds controller. Then run your rom and go to controls in the quick menu. From there go down to the second set of auto: Circle Pad Right inputs and set the inputs you want for player two. Also make sure player two has a device type same as player 1 on the top of the same menu. This is how I did it for genesis plus gx.

Also I would say the 3DS scene got pretty revitalized by the n64 emulator. Also personally I enjoy gbarunner2 and its quickly development. Heck it has even surpassed mgba and higan in accuracy on some very few roms! (Pacman World 1+2 and Grim Adventures and possibly more).

Cores I've tested so far:
Snes9x 2002 - Doens't work - Doesn't let me change controls in quick menu.
Snes9x 2005 - Works.
Snes9x 2010 - Works.
FCEumm - Works.
PCSX Rearmed - Works (!)
thanks a ton
I tried this with FBAlpha CPS-2 because of all the great fighting games but it wouldn't work for some reason
it let me change the crud but player 2 inputs just wouldn't do anything
 
Thank you SO MUCH. I'll be trying this out in a bit!
Sadly I'm in an Apple family, so we don't have an Android phone to easily do input redirection.
Wonder if there exists a bluetooth dongle that basically just connects to a specific ip address and you sync up a controller and that's it.
I use Snes9x 2002, and I'll check to see if I can get that working.
I also used to use GBArunner2 because I couldn't get gpSP to actually work.
Now I can and I use it.
Edit: I can enter the controls config menu in SNES9x 2002 but can't actually change things. Well, crud.
Can you test it with FBNeo for me? The compatibility for me seems to be rather schizophrenic- last week everything worked, yesterday everything crashed, I don't know about today aside from the fact that the two games I tried work.
Do you have an old3ds since you prefer snes9x 2002 and not 2005 for example? FBNeo has those sets you have to be really attentive to get the right ones of, no? That's a bit of a hassle to set up tbh :P

--------------------- MERGED ---------------------------

thanks a ton
I tried this with FBAlpha CPS-2 because of all the great fighting games but it wouldn't work for some reason
it let me change the crud but player 2 inputs just wouldn't do anything
It's really important that you set the 3DS controller for player two in retroarch general settings' input part.

Then for the controller settings you'll just have to scroll down until it says user #2 in the bottom left corner.
 
Do you have an old3ds since you prefer snes9x 2002 and not 2005 for example? FBNeo has those sets you have to be really attentive to get the right ones of, no? That's a bit of a hassle to set up tbh :P
No, I'm using a n3ds. I just know that 2002 performs better for whatever reason.
And yeah FBNeo is a pain in the ass.
 
Do you have an old3ds since you prefer snes9x 2002 and not 2005 for example? FBNeo has those sets you have to be really attentive to get the right ones of, no? That's a bit of a hassle to set up tbh :P

--------------------- MERGED ---------------------------


It's really important that you set the 3DS controller for player two in retroarch general settings' input part.

Then for the controller settings you'll just have to scroll down until it says user #2 in the bottom left corner.
I did. I tried configuring it for Super Gem Fighter Mini Mix (Pocket Fighter, which is what I'll call it because it isn't stupidly long). Three button fighter should be easy- I set player 1 to use circle pad, start, select, ABY, and player 2 c stick, d-pad up and down, XLR.
It did not work. (I used directly configured inputs instead of Analog to Digital.)

--------------------- MERGED ---------------------------

2005 worked smoothly for me on my n3ds.
ok I'll give it a try
 
I tried FCEumm.
Player 1: circle pad = dpad, by = ab, select and start = select and start.
Player 2: c stick = dpad, ax = ab, lr = select and start.
The C stick worked but nothing else.
What do I do??

--------------------- MERGED ---------------------------

I also tried the same control scheme you suggested.
Still doesn't work in FCEumm. What do I do?!
I made sure to set player 2 to 3ds controller, set both to gamepad, all of that, but only the stick works and the buttons for player 2 do nothing.

edit: also, fbneo is still a pain in the ass.
art of fighting? ok.
aof2? ok.
aof3? crash.
fatal fury? ok.
king of fighters (any of them)? crash.
 
Last edited by Plasmaster09,
I tried FCEumm.
Player 1: circle pad = dpad, by = ab, select and start = select and start.
Player 2: c stick = dpad, ax = ab, lr = select and start.
The C stick worked but nothing else.
What do I do??

--------------------- MERGED ---------------------------

I also tried the same control scheme you suggested.
Still doesn't work in FCEumm. What do I do?!
I made sure to set player 2 to 3ds controller, set both to gamepad, all of that, but only the stick works and the buttons for player 2 do nothing.

edit: also, fbneo is still a pain in the ass.
art of fighting? ok.
aof2? ok.
aof3? crash.
fatal fury? ok.
king of fighters (any of them)? crash.
Tbh I only tested the Cstick but I figured the rest would work :unsure: Maybe you should try to go into settings and input and remove those inputs from user 1 since cstick probably wasn't mapped to user 1?
 
oh that explains it 8(
I already did that
I looked a bit more into it and I was able to map the circle pad to player 2 by disabling analog to digital type for user 1 (if you have that enabled) and set the auto: circle pad in user 2 to whatever commands I wanted. This gives us a whooping 8 inputs in total we now can use :O Also another solution could have been to map cstick up as A and cstick down as B. Often you can do without up or down in NES platformers for instance.Tried getting shoulder buttons and start to work but nope. Maybe if you set User 1's abxy to the shoulder buttons they'll be free and mappable to player two?... Nope that doesn't work either. Seems we'll have to do with those inputs.
 
Last edited by Zense,
I looked a bit more into it and I was able to map the circle pad to player 2 by disabling analog to digital type for user 1 (if you have that enabled) and set the auto: circle pad in user 2 to whatever commands I wanted. This gives us a whooping 8 inputs in total we now can use :O Also another solution could have been to map cstick up as A and cstick down as B. Often you can do without up or down in NES platformers for instance.Tried getting shoulder buttons and start to work but nope. Maybe if you set User 1's abxy to the shoulder buttons they'll be free and mappable to player two?... Nope that doesn't work either. Seems we'll have to do with those inputs.
well crud
since I have basically zero impact on anything, can you ask and see who would be able to implement this or make it actually work?
 
well crud
since I have basically zero impact on anything, can you ask and see who would be able to implement this or make it actually work?
I can try. To me it also seems like a bug with the system that you can't map more than the circle pad and cstick to player 2. I'll try asking over at the retroarch thread first if there's something we're doing wrong. Also I was able to test this out yesterday and it works pretty well. I updated the long post above to specify some things about it.

Btw do you know a way to remap xinput controllers for the pc input redirection client? I tried several but none seemed to work (: Durazno. XInputPlus , x360ce). The only remapping that worked for me was wiinusoft when connecting a wiiu pro controller.

It played really well with the controller connected btw!
 
Last edited by Zense,

Site & Scene News

Popular threads in this forum