mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support
-
@Riverstorm @grant2258 , I tested now and indeed the game focus mode is working for me in RA 1.7.5 and latest
lr-mame2003-plus
core. It does solve the double-input problem but not in the way the oldinput_interface
option does. I personally think the old option should return. Let me elaborate.What the game focus mode actually does is to disconnect the keyboard as an input from RA (including hotkeys and custom bindings) and give full access of the keyboard to the core. This is why the double input dissappears, because RA no longer reads the keyboard itself and doesn't feed the core with a gamepad input alongside the core's own keyboard reading.
However, because of this you also looose rebinding functionality from RA. If you try to customise bindings inretroarch.cfg
and activate game focus mode, these bindings are not respected as the core has no idea about them and processes the keyboard by itself. Also you loose the ability to exit the emulator using key combinations as RA no longer is processing the keyboard.Rebinding is important because some hardware controllers does not map exactly to the MAME internal key layout, a simply re-binding works fine thus. I tried to access the MAME Menu using TAB, which I can, however I don't see any key rebinding options. I only see basic options such as "Game Information" and "Bookkeeping".
On the other hand, the old
input_interface
option was good because it allows to make MAME not process the keyboard by itself but instead process the input given by RA, with the added benefit of being able to rebind from RA and use hotkeys to exit the emulator or reset the content.Is there any strong reason to not bring back the
input_interface
option? Or how can I rebind the MAME internal key layout to adjust to my hardware keys? Is there another menu besides TAB? Also, I didn't find a way to activate game focus mode on startup of RA (so I don't need to activate it manually each time I start a game).Thanks for the patience and help guys!
-
Hehe, I just found out that to access the internal Input remapping MAME menu options, you need to set
mame2003-plus_mame_remapping
toenabled
in the retroarch core options. Now I can bind the keys for the internal keyboard processor.
To circumvent having to activate game focus mode every time, I can bind all directional/button keys to "nul" in RA while retaining the hotkey bindings, however I loose the ability to navigate RA's menus. It would be nice to configure things more natively using RA's internal system. -
I dont think you fully understand what going on but there is a solution. Add hotkey enable to access you hotkeys and you have the full keyboard.
the problem that remain is your retropads and mame keys are proccessing conflics unless they are identical. The solution is simple forget about mame key simply leave the joypad settings in and define no keys. This will be done in good that way you can have your ra config set any way and not worry about configuring mame. (set input in auto focus mode)
-
yes, I definitively don't fully understand how the input works for the
lr-mame2003-plus
core, hence why I'm so confused about it. So, thanks for the guidance :)Just to be clear, there are two separate issues that I'm trying to solve:
- stop the core of receiving duplicate input (from RA and internally)
- change the bindings as my hardware unfortunately is not standard, e.g. it swaps down and right
If I understand you correctly, I should unbind all RA keys (using "nul" in their bindings) except for the hotkey enable system and leave the core on its default bindings. This will solve 1) but not 2). I believe I still need to do what you say but also remap inside MAME to solve 2), and leave RA out of the rebinding.
What I am missing? Thanks again.
-
@hhromic - You shouldn't need focus mode when in the RGUI, not that I can think of anyway. You would want your RA config as all RA based bindings. RA isn't capable of receiving duplicate inputs, the issue is TAB based.
The only time I use focus mode is when I am in the TAB menu to counteract double inputs. I turn on focus for keyboard based input devices, configure the game and when I'm done I shut it off. Focus won't interfere with your controller input so you can configure both at the same time, keyboard and controller based input when in focus mode.
One thing I think that might be confusing. I don't think focus mode is meant to be on permanently. It's meant to be turned on temporarily and then shut off.
The other option what Grant is proposing is instead of setting all your RA inputs to nul you could nul all of your TAB keyboard inputs but leave your controller inputs in TAB and use RA only for keyboard based input devices.
Like you said when you set your directional keys to nul you can't navigate RA so that's not really an option because you need that navigation for all the installed Libretro cores and not just MAME. So you need to focus on how you can correct the TAB input. It's harder to explain than I thought but not really very complicated so once you get the gist of it you'll have an "a-ha" moment.
I do the former vs. the latter and it works well and I am able to achieve both 1 and 2 you listed above.
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
@hhromic - You shouldn't need focus mode when in the RGUI, not that I can think of anyway. You would want your RA config as all RA based bindings. RA isn't capable of receiving duplicate inputs, the issue is TAB based.
First, thanks for your answer :).
I fully agree, I definitively do not want to use focus mode normally and I do want RA config like any RA based bindings, same page there. However I don't understand what do you mean with TAB-based duplicate inputs. You mean the menu that appears when using the TAB key? I do also receive duplicate inputs in-game too, for example in a game's service menu I see multiple inputs for single buttons. For example thes
key is mapped to two different buttons in RA and the core, hence I receive an input for both at the same time. I believe I have to align the core's internal mapping with RA's mapping?The only time I use focus mode is when I am in the TAB menu to counteract double inputs. I turn on focus for keyboard based input devices, configure the game and when I'm done I shut it off. Focus won't interfere with your controller input so you can configure both at the same time, keyboard and controller based input when in focus mode.
Just to be clear that I'm using a keyboard-based controller, not a gamepad.
One thing I think that might be confusing. I don't think focus mode is meant to be on permanently. It's meant to be turned on temporarily and then shut off.
I fully agree with that, the game focus mode seems to be a temporary toggle for when you need the core to access the keyboard directly.
The other option what Grant is proposing is instead of setting all your RA inputs to nul you could nul all of your TAB keyboard inputs but leave your controller inputs in TAB and use RA only for keyboard based input devices.
Like you said when you set your directional keys to nul you can't navigate RA so that's not really an option because you need that navigation for all the installed Libretro cores and not just MAME. So you need to focus on how you can correct the TAB input. It's harder to explain than I thought but not really very complicated so once you get the gist of it you'll have an "a-ha" moment.
So, again, when you mean "correct the TAB input", you mean the input MAME receives internally via mapping using the menu that pops with the TAB key?
Indeed all this is very confusing and I appreciate the support :)I do the former vs. the latter and it works well and I am able to achieve both 1 and 2 you listed above.
Will try more things in hopes of getting a clearer picture of what is going on :) Thanks!
-
@hhromic said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
ould unbind all RA keys (using "nul" in their bindings) except for the hotkey enable system and leave the core on its default bindings. This will solve 1) but not 2). I believe I still need to
the solution is simple.
set a enable hotkey so you have to press that and the hotkey for the hotkey to access.
assuming youve set up all your binds for p1 and p2 to in ra config.
remove the keyboard defaults from mame they are casuinf double binds as well all will work.
Ill do some code to do an ipac mode when i get time.
that has no keyboard codes set as default the problem is when you press a key it pressing a key and retropad (in this mode because of your retropad binds) as well and the mame default keys that are set cause the problem. This is not the place to discuss it. it a really simple fix
-
@grant2258 The missing drums from level 2.
-
@grant2258 said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
@hhromic said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
ould unbind all RA keys (using "nul" in their bindings) except for the hotkey enable system and leave the core on its default bindings. This will solve 1) but not 2). I believe I still need to
the solution is simple.
set a enable hotkey so you have to press that and the hotkey for the hotkey to access.
Did that, yes.
assuming youve set up all your binds for p1 and p2 to in ra config.
I did too.
remove the keyboard defaults from mame they are casuinf double binds as well all will work.
This is what I can't manage to do. In the TAB menu, where I can rebind the keys, the core is receiving double input, so I can't get rid of the internal key binding.
With a default config, for example it says "P1 Up : UP or RetroPad1 Up", I understand I need to only have "P1 Up: RetroPad1 UP", but I can't achieve this with the double-input. If I use game focus mode, I don't receive the RetroPad1 input and of course doesn't map.Is there a way to create a
default.cfg
file with custom bindings manually? The file is not human readable so can't edit it by myself with a text editor.Ill do some code to do an ipac mode when i get time.
that has no keyboard codes set as default the problem is when you press a key it pressing a key and retropad (in this mode because of your retropad binds) as well and the mame default keys that are set cause the problem. This is not the place to discuss it. it a really simple fix
That sounds exactly like what is needed, I hope you find the time to implement it. No rush though!
Thanks for all the help. -
@hhromic - When I refer to TAB input. I actually launch a game and press TAB (with MAME remapping enabled) so I can access the
Input (general)
orInput (this game)
. Maybe an example will help but take what I say with a grain of salt because this is just what I do. I know it's complicated but also it allows for incredible flexibility too so this is just one way. Grant pointed out an alternate way that works also so it's nice to have options.You might see something like this in the TAB menu option
Input (this game)
.P1 Button 1 = RetroPad1 B
So when I look at that I know whatever button I mapped on my controller in RA to
RetroPad1 B
will make my character jump, fire, etc.Now what I want to do is add say for example left control (LCTRL) from my keyboard-based controller to the MAME TAB direct input. I press enter on the field
P1 Button 1
and pressLCTRL
on the keyboard, it will addLCTRL Retropad1 B
, that's not really what I wanted, it's a double input.So I set it back to the defaults or
NONE
, turn on focus mode, press enter onP1 Button 1
and pressLCTRL
again. Now the input shows simply asLCTRL
. Now that's perfect so if all I wanted was my keyboard-based controller mapped for an arcade cabinet I am done. Turn off focus mode and exit the TAB screen.But I also want to keep my controller working so any game I may use either my keyboard or controller so I press enter on the
P1 Button 1
field again and pressRetroPad B
on my controller. (RetroPad B is not literally the B button but what I assigned on my controller to RetroPad B). Now myP1 Button 1
reads like thisP1 Button 1 = LCTRL or Retropad1 B
If I want my character to jump, fire, etc. I can press
LCTRL
ORRetroPad1 B
Even doing all this you may still have conflicts with RetroPad and MAME TAB "raw" or "direct" inputs so what I do is align my RA inputs to match my MAME TAB inputs. So for example I will set
RetroPad B = LCTRL
and MAME TABP1 Button 1 = LCTRL
, then the same for button 2, button 3, etc. to avoid these types of issues. You could reverse it also and align MAME TAB to match RA defaults.Keep in the back of your mind MAME accepts two inputs, RA inputs and "raw" or "direct".
I like to use the TAB input because some of the analog dials, pedals, etc. are not properly implemented or can't be configured in RA so the TAB input is still has necessary function for certain games.
Your questions and thoughts are correct and your close to understanding it I think. Just keep messing around and watch what happens when when configuring and pressing buttons and it will start to make sense.
Unfortunately you can't edit the default.cfg directly, that would be entirely to easy! ;)
-
@Riverstorm That's a brilliant post, very enlightening! Much appreciated.
I have already come across how the TAB menu works so is much easier to understand after your detailed steps. I was thinking on leaving the RetroPad bindings there, but after what you say, yes it might make more sense to leave the direct keyboard bindings only for now, until @grant2258 implements the "blank keyboard codes" set as default.Unfortunately you can't edit the default.cfg directly, that would be entirely to easy! ;)
Definitively this is way harder than it needs to be :)
Again, thanks for all the help. This is truly a nice forum. -
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
So I set it back to the defaults or
NONE
How do you set a binding to NONE in MAME's tab menu?
-
@hhromic - Most of what I know is due to @grant2258 coding these features in to the core and then taking the time to explain them. I just try to explain it differently sometimes or how I've come to understand it.
Also out of habit I do most of my configuring on a wired/wireless keyboard even with an iPAC, Xin-Mo, etc. hooked up at the same time. You need access to the focus key and other management keys anyway.
-
@Clyde said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
How do you set a binding to NONE in MAME's tab menu?
Left, left on the left stick on a controller or double delete on a keyboard. Press enter on the field first. You can try it without pressing enter first and only highlighting the field. It might work but I didn't have any luck that way.
-
@Riverstorm @grant2258 success!
Following @Riverstorm very instructive post, what I did was indeed to only map the "raw"/"direct" input in the MAME TAB-menu and left the RetroPad input out. It is a laborious manual work. This prevents the double inputs as MAME doesn't care about the RetroPad input anymore. Together with binding a "hotkey enable" key, MAME is completely separated from RA's functionality and I don't loose RGUI navigation. Much appreciated!I still feel that there should be an easier way, like an option for MAME to disable RA's input listening or the "raw"/"direct" input listening (or have both). So looking forward for this aspect to become better.
Thanks you both guys for all the help! :)
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
@Clyde said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
How do you set a binding to NONE in MAME's tab menu?
Left, left on the left stick on a controller or double delete on a keyboard. Press enter on the field first. You can try it without pressing enter first and only highlighting the field. It might work but I didn't have any luck that way.
I also use double ESC for setting the binding to NONE. As @Riverstorm said, you first highlight the input field (with ENTER) and then just press ESC ESC. Then it will display "None".
-
@Riverstorm said in mame2003-plus: hundreds of new games, improved input, features, new bugs - now with runahead support:
Left, left on the left stick on a controller or double delete on a keyboard. Press enter on the field first. You can try it without pressing enter first and only highlighting the field. It might work but I didn't have any luck that way.
Left, left or double delete after enter only restores the default binding for that control, it doesn't change it to NONE. Without enter, nothing happens in both cases. I tried it on mame2003 and mame2003-plus, and with game focus on and off. I updated both approx. two weeks ago.
Why is it different for you than for me? What I am missing?
-
@Clyde try with double ESC. I just did it some minutes ago with latest RA and lr-mame2003-plus.
-
@hhromic In mame2003, double ESC also only restores the default binding for that line. In mame2003-plus, it binds a double ESC to that line. Again, with or without focus.
I may update mame2003-plus and try it again. But that will take some time. :)
-
@Clyde I remember I read it somewhere. For example I just quickly googled: http://forum.arcadecontrols.com/index.php/topic,49164.msg479503.html#msg479503
if I remember, I think you after selecting the button (ENTER) you need to hit the ESC twice quickly to get NONE or N/A.. Try that.....
It's a post from 2006, so that feature seems to be very old. Did you try "quickly" pressing double ESC?
Perhaps you need to clear yourdefault.cfg
file? (if you don't care for any existing mapping)
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.