More freedom in control options?

Could you make it so it’s possible to bind whatever we want, wherever we want?

Let me explain:

In Goldeneye (and Perfect Dark) there is an option to use 2 controllers (one on each hand) so you can use both analog sticks for real dual analog controls. This was the only way to use 2 analog sticks because there wasn’t a dual analog controller for the N64. It felt better than it looks thanks to the shape of each controller. It feels like holding one beefier nunchuck on each hand.

Now, using a standalone controller plugin, on a standalone emulator, you can attach the analog stick and some of the buttons of the second N64 controller to your first controller. For instance, i attached the second controller’s analog stick to my 360 right analog. This way i can use the true dual analog scheme using just one 360 controller, like a modern FPS game.

However, i can’t do this with RetroArch. The bind options are restricted to player 1 using binds from the 1st controller only and player 2 from the 2nd, etc. so you can’t do this trick.

So could you allow whatever binds to whatever buttons? I know that maybe this is useful for only those two games so it could be just an exception for the N64 cores?

1 Like

I do think our input system should be more flexible.

That said, what you’re describing would require a complete ground-up rewrite of the entire input system, which is a pretty big ask for a niche feature from just two games.

Ok got it, thanks.

Another thing you could do is just map the c-buttons to a right-stick, then set game-specific controls so these give you the right directions for modern play.

Perhaps an external tool like XInput Wrapper could let you map one of your analog sticks to the second controller’s relevant stick?

I already do this (bind D-Pad to the left stick + 1.2 solitare setup in Goldeneye menu, so it’s the same as modern shooters), it’s almost the same thing but not quite. C-Buttons/D-Pad are not analog. So you can only run full speed or stay still, no walking or anything in-between.

It’s not a big deal but Goldeneye/PD do support real dual analog with the dual controller setup.

[QUOTE=Alexandra;46132]Perhaps an external tool like XInput Wrapper could let you map one of your analog sticks to the second controller’s relevant stick?[/QUOTE]I have X-Padder and as far as i remember, i couldn’t find a way to do it. These programs let you bind keyboard and mouse inputs to your controller, i don’t think there are options to bind inputs from one controller to another.

Unless maybe RetroArch lets me bind the second controller analog to the mouse movement (to stay analog). Then i could bind the mouse movement to the right analog stick of the first controller using X-Padder.

X-Padder is a simple input substitution program and not let you bind to inputs on other controllers. I’m not as familiar with XInput Wrapper but it has different features and may let you do this.

Edit: Oops, misspoke. I meant to suggest investigating Xbox 360 Controller Emulator, not Wrapper.

Edit 2: Just researched this for an hour or so. X360ce seems able to do kind of the opposite, combine two physical controllers into one virtual one, but I couldn’t map a controller 2 axis onto controller 1. Seems an oversight and would be a good feature to have, imo. Haven’t looked into InputMapper.

What are the plans on making the controller interface more flexible?

I have an idea that has been on my mind for a while about the controls. Instead of setting all controllers up like a PS controller, what if we can change it from “Retropad” to SNES style, or N64 style, and any other system. It’s mostly for N64 or systems that don’t have the conventional setup. It gets confusing to setup a controller for PS2 type controllers and re-assign everything for playing N64. I have an actual N64 controller for the PC, and it would be great to just set it up instead of re-assigning buttons.

The other idea is instead of setting up controllers in the traditional Retroarch sense, you just press a button to assign it to a button, like MAME does.

Yeah, there’s something about RetroArch’s input options that i don’t get. Every time i end up configuring system inputs via trial and error. I feel like there’s another layer between the game inputs and my controller that gets in the way. Maybe it’s my problem and i’m stupid. But i never had this problem with any other emulator or input plugins.

I have finished setting up every system and saved the inputs so i don’t need to do it again. But every now and then, a game pops up that has weird controls on it’s own and i always spend more time than i should configuring it (Especially on the N64).

Or maybe i’m spoiled by OpenEmu’s control options, i don’t know. You get a nice picture of the real controllers and you just bind the inputs there. Can’t be more simple than that. I’m not sure if OpenEmu is as “flexible” in that aspect though, whatever that means.

N64 and MAME/FBA have some hardcoded per-game control changes that are intended to make those games more playable on typical gamepads. For example, KI-Gold moves the buttons around to act like a standard 6-button fighter instead of having the C-buttons on the right-analog.

I’m not a huge fan of this behavior, personally, but Twinaphex insists on it and some users have been very appreciative, so YMMV. I think some of the cores have options to disable the button changing (e.g, mupen will revert them if you press retropad select or something, I think).

Thanks to the admins for the info on the input design choices in Retroarch. The controller setups are (for me) the most obtuse and frustrating part of setting up RA. Maybe someday down the road we could get a simple controller diagram where we could just map control inputs in a more visual way and tie the config to the cores. I never could get my N64 controllers to work correctly so I’ve gone back to PJ64 for now. Being able to just click a button on a diagram and press the corresponding button on a gamepad would make life soooooo much easier.

1 Like

[QUOTE=GemaH;46097]Now, using a standalone controller plugin, on a standalone emulator, you can attach the analog stick and some of the buttons of the second N64 controller to your first controller. For instance, i attached the second controller’s analog stick to my 360 right analog. This way i can use the true dual analog scheme using just one 360 controller, like a modern FPS game.

However, i can’t do this with RetroArch. The bind options are restricted to player 1 using binds from the 1st controller only and player 2 from the 2nd, etc. so you can’t do this trick. [/QUOTE] I’ve done this specifically for GoldenEye and Perfect Dark, it IS possible! The first big stumbling block is that you cannot null out controller binds inside RetroArch itself, so pre-existing binds will get in the way. You have to dig through the config files and null them out manually. (It also helps if “Autoconfig Enable” in the “Input” options is turned OFF.)

Look in RetroArch’s “config” folder for “retroarch.cfg” (or if you have per-core enabled: <CORE>.cfg), and search for “input_player1_l” and “input_player1_r”. You should see lines like “input_player1_l_x_plus_axis”, “minus_axis”, etc. Change these to “nul” and save. You might also want to do this for “input_player1_l2_btn” and “input_player1_r2_btn”.

In RetroArch, start your game. Open RetroArch’s menu, and head to “Input”. Make sure “Max Users” is set to 2 or more. Head down into “Input User 1 Binds”. Take note of “User 1 Device Index”. Bind “User 1 L2” and “User 1 Left analog” to your controller’s L2 and Left stick, while leaving R2 and Right analog as “N/A”.

Then, head into “Input User 2 Binds”. Change “User 2 Device Index” so that it matches User 1. Bind “User 2 L2” to your controller’s R2, and “User 2 Left analog” to your controller’s Right stick.

Now you should be able to use Goldeneye/Perfect Dark’s dual stick controls! It takes some work, and you might want to swap some binds around to make it even more comfortable, but you already know the work is worth it.

If you want to make things easier on yourself in the future: Settings > Input > Configuration Configuration Per Core: OFF Use per-game core options if available: ON Load Override Files Automatically: ON

config.zip (4.63 KB)

I’ve found this setup to be incredibly useful for situations like this, where specific games benefit from tailored configurations. I’ve attached a ZIP as an example — back-up your config files, then unzip to RetroArch’s “config” folder. I’m using the “2.4 Goodhead” controller setup for GoldenEye, and “2.2” for Perfect Dark. I’ve swapped the analog binds for User 1 and User 2 (U1 Left analog = Controller’s Right stick, U2 Left analog = Controller’s Left stick). With this configuration, Left stick lets you move forwards/backwards and strafe, while Right stick is for general aiming. L2 is shoot and R2 is precise aim. These configs are bound for a PS4 DualShock 4 controller, so you’ll likely need to rebound for other controllers.

You can create Override config files by going to Main Menu > Save New Configuration, then using something like Notepad++ and it’s “Compare” plug-in to compare “retroarch.cfg” and the newly saved config file, and strip out redundant config lines as you see fit. (That said, it’d be nice to be able to automate the creation of Override config files in RetroArch itself. It can be kind of tedious.)

2 Likes

Whoa, i don’t have time to do this now but later on i will try it out and report.

Thanks a lot for the post.

There is in the nightlies. I haven’t tried it yet, but I think there’s a save overrides option in the quick menu. It might not be named that exactly.

@CHICAGO-lollie Great writeup. I’m looking to do the exact same thing for the same games ironically, within Lakka 2.0. Hate to revive an old thread, but this is exactly what I’m trying to do so mine would be a dupe at this point.

Have you found it any easier to do this with later builds without “fighting” RetroArch as much with overrides and such?

It kind of seems like autoconfig becomes disabled once you specify your own .cfg file in the joypad folder and it always goes with those cfg definitions by default afterward. I’m wondering if there is a cleaner way to do this via that kind of setup.

UPDATE: looks like someone figured it out already. Gonna give it a shot.

UPDATE 2: The link post appears to be more of just moving buttons around and thus not true analog controls for both left and right thumbsticks, so it probably wouldn’t work as well as the solution mentioned by CHICAGO

1 Like

Admittedly I haven’t had to think about it much since setting it up, but making override config files is much simpler now that the functionality is built into RetroArch, taking a lot of the “fight” out of the process.

(Load a game or core, then open RetroArch’s Quick Menu and scroll to the bottom, where you’ll find “Save Core Overrides” and “Save Game Overrides”)