Viewing Issue Advanced Details Jump to Notes ]
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06519 DIP/Input Critical (emulator) Always Mar 17, 2017, 19:02 25 days ago
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
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
Flags
Regression Version
Affected Sets / Systems All drivers with slot-based controllers
Attached Files
 


-  Notes
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)
28 days ago
edited on: 28 days ago
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)
26 days ago
edited on: 26 days ago
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)
26 days ago
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)
26 days ago
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)
25 days ago
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.