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)|
|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|
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.
|Affected Sets / Systems||All drivers with slot-based controllers|
|There are no relationsihp linked to this issue.|
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...|
Mar 20, 2017, 16:42
|Deleted all CFG and NVRAM files, and tried again. Same result here.|
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.)
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.
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.|
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.|
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.|