Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06519 DIP/Input Critical (emulator) Always Mar 17, 2017, 19:02 Apr 1, 2017, 13:14
Tester aceshigh1 View Status Public Platform MAME (Official Binary)
Assigned To AJR Resolution Fixed OS Windows 10 (64-bit)
Status [?] Resolved Driver
Version 0.183 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 06519: All drivers with slot-based controllers: Buttons cannot be mapped to more than one key using 'or' logic using internal UI
Description This includes NeoGeo games but also extends to many of the console systems eg. 'nes'
Tried several NeoGeo games: samsho, samsho2, fatfury1, fatfury2

with the NeoGeo reproduction is easy to test because it has both regular controls (for the coinslots) and slot based controls (directions, buttons)

creating an 'or' mapping for the directions/buttons appears to be impossible, while creating if for the regular 'root:' controls is easy and works as expected.
Steps To Reproduce 1) Load a neogeo game (samsho for instance).
2) Select any BIOS.
3) Pass the info screen.
4) Press TAB key to bring up to UI.
5) Select "Input (this Machine)".
6) Highlight "P1Button1" and press ENTER.
7) Hit the A key, for instance. Now the P1Button1 is mapped to key A.
8) Press ENTER again without changing the highlighted line.
9) Hit the D key, for instance. Now the P1Button1 is mapped to key D only.
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems All drivers with slot-based controllers
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
7
User avatar
No.13710
StHiryu
Tester
Mar 17, 2017, 23:47
This happened to me playing Metal Slug, but after several tries, it worked fine again....Don't remember if I deleted the cfg and nvram files...
User avatar
No.13717
aceshigh1
Tester
Mar 20, 2017, 16:42
Deleted all CFG and NVRAM files, and tried again. Same result here.
User avatar
No.13740
ozfalcon
Tester
Mar 29, 2017, 13:58
edited on: Mar 29, 2017, 14:12
Works here (Can assign "A or D") but the timing is tight.
Try doing the FIRST key assignment press faster.
And each subsequent key assignment press faster if you want to add more than two (ie "A or B or C or D" etc.)
User avatar
No.13752
Haze
Senior Tester
Mar 31, 2017, 04:41
edited on: Mar 31, 2017, 04:47
there's definitely a bug here, it seems to affect any pluggable controller devices, ie anything that isn't plain root:

personally I can't map anything with 'or' logic if it's in anything other than the 'root:' section regardless of timing.

this actually looks like a VERY serious issue covering a large number of systems.
User avatar
No.13756
Haze
Senior Tester
Mar 31, 2017, 16:48
I've updated the report a bit, and set it to 'critical' because IMHO this should be considered a blocking bug, the input configuration code is a key part of MAME and this is a widespread flaw.
User avatar
No.13759
AJR
Developer
Mar 31, 2017, 21:01
I've fixed this, but it must have been a fairly longstanding bug. The root cause was declaring menu_input::last_sortorder as uint16_t, despite the sort ordering using 32-bit values. It just so happened to be the case that the higher-order word bits are used to separate device-based inputs.
User avatar
No.13760
Haze
Senior Tester
Apr 1, 2017, 13:14
Yeah, I imagine it went unnoticed in the past because not many people were using things with slot-based controllers, but now more people are using them it started being noticed.