Some games giving two credits despite DIP switch coinage set for one credit per coin
-
@mbert0 ah, i know this issue now. it IS software, but it's not really fixable.
the problem is this: mame2003 reads the keyboard and the 'joystick' state every frame. the 'joystick' in this case is the retropad abstraction.
so, when you press your bound 'select' (insert coin) button on your keyboard, mame2003 sees both retropad select AND that keyboard key as well. i guess in this case, when you insert coin it sends two inputs:
- retropad select button (insert coin)
- the keyboard insert coin key
so that's two insert coins in the same frame. evidently some games will ignore that, but others might take that as two credits.
the same issue applies when you use the ipac, as it appears as a keyboard to the system.
i believe the only way to fix this is to make all the retropad buttons 'null' in your config so it only sees the keyboard keys. or vice versa. i think @caver01 has hit this same issue, and probably explains it better :)
-
@dankcushions hah, that makes sense! Thanks for your insight.
If there is value to devs I'd be more than happy to open an issue in GitHub and be debug monkey.
In the meantime for the games the kid and I compete at most often (Frogger, Moon Patrol, and 19XX) I suppose our playtime just doubled before bedtime. I believe this is a win for the kid :)
Edit: Dumped main and mame-libretro retroarch.cfg files to a Gist (https://gist.github.com/moosebert/bba44b01523ffba9a5998cf0d361bd46). These are the only configurations in play, no other mapping, remapping, etc. files/configs.
-
@mbert0 I think @dankcushions explained this problem better than I could have. Another workaround might be to remap the coin key using the MAME GUI menu <TAB>. You could just map it to the same key, but when you do, MAME will see BOTH keys at the same time (your raw keyboard/ipac key + the Retropad virtual button). When MAME sees both keys at the same time, it saves the mapping as a <CODE_AND> type of key press. It is effectively saving coin input so that BOTH keys have to be pressed at the same time, as opposed to the default which may allow either to be pressed.
Remapping is a very easy thing to do that might be a quick way to test. Otherwise, @dankcushions suggestion about setting all retroarch inputs to "nul" would be even better. Or, simply set the SELECT to "nul" as this doubles as the coin button. That way, when you press your coin button/key it only comes from the ipac.
I ran into a related issue that dank is remembering with this dual key press issue with respect to my early attempts to map <CODE_NOT> key combos to make a single joystick work to control a game that uses dual tanksticks. There is a complicated mapping formula you can use (stuff like, "Left but NOT DOWN" and so on) by pressing one key, they quickly pressing another key twice. It would fail when I tried because MAME thought I was already pressing two keys at the same time (raw keyboard + retropad virtual button). Setting the retroarch inputs to "nul" in the retroarch.cfg allowed me to map only my ipac keys.
Anyway, didn't think there were other use cases. This is interesting.
-
I have recently been considering, when in the future I do build a cabinet at home, to add such coin mechanisms and buy tokens to reward the kids every now and then, so that they also learn the value of money to some extent, and control their game time. Right now it's just in the living room, with two PS 3 controllers, which is hard to take away :)
I didn't think someone would have done such a thing already though, though I suppose if at times a second credit would come up I'd more likely tell them that they got lucky rather than worry :) Either way, glad you solved it.
If you'd want to share the specs/build for your cabinet, would love to hear about it - the more ideas and feedback on what works, the merrier.
-
@mbert0 Ok, apologies for that...
That was the first thing that comes to my mind first, never thought of something like that...
I should think about it more next time, sry -
@DarkWolf no worries, and no offense taken. Join the foot-in-mouth club... I'm a member myself ;)
-
@caver01 @dankcushions thanks very much for the insight and advice. I followed the suggestion to nul-out things in the retroarch config and re-bind MAME itself. Worked, like, a, champ!
-
@pjft Absolutely. PM me and I'd be happy to share. Don't want to hijack this thread.
-
@mbert0
You could open a new topic in the "Projects and Themes" section so everyone can look at it and maybe find something usefull for them in it -
@mbert0 said in Some games giving two credits despite DIP switch coinage set for one credit per coin:
@pjft Absolutely. PM me and I'd be happy to share. Don't want to hijack this thread.
If only there were PMs here :)
@DarkWolf 's suggestion is definitely the best!
Thanks.
-
@mbert0 i just had a little brain-wave about this, and thought i'd share:
i tested frogger with my retropad select button (insert player 1 coin) bound to my keyboard button 5, which is the same as the insert player 1 coin keyboard button in frogger. one button doing insert player 1 coin in two different ways.
i tested, and only 1 credit appeared every time i pressed, and it only seemed to hit the keyboard part of the code. curious...
in your .cfg:
input_player1_select = "num6"
so your retropad select button (insert player 1 coin) is '6' on the keyboard. however, in frogger in mame2003, this is also the default player 2 insert coin. keyboard button so, every time you press this button, you insert a coin for player 1 AND player 2. 2 credits!the mame core itself seems to be clever enough to ignore two presses of one button, but it (correctly) registers two separate (as far as it knows) buttons.
so hopefully this explains the issue a bit better :) i don't think i can fix this. one thing i could do is remove all the default keyboard bindings in mame, which isn't a bad idea, actually.
-
@dankcushions Good catch. That would definitely drop two coins I would think.
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.